contributions:
line1 with the PATTERN that contains ( )
line2 with the PATTERN that contains ( )
lineN with the PATTERN that contains ( )
les sorties:
line1 with the PATTERN that contains ( ) ;
line2 with the PATTERN that contains ( ) ;
...
lineN with the PATTERN that contains ( ) ;
J'ai essayé ceci:
find . -name "test.txt" -print | xargs sed -i "/PATTERN/ s/$)/); /g"
mais ça n'a pas marché.
shell
sed
line-editor
user3342338
la source
la source
-exec ... +
lieu de-exec ... \;
, si votre découverte le permet.En supposant que
PATTERN
c'est effectivement le cas( )
et que quelque chose pourrait se situer entre le( )
et qu'ils ne sont pas nécessairement à la fin de la ligne:la source
Utilisation
ex
(qui équivaut àvi -e
/vim -e
).Un fichier:
Tous les
test.txt
fichiers récursivement:Remarque: assurez-vous que l' option globbing (
**
) est activée par:shopt -s globstar
si votre shell la prend en charge.Remarque: la
:bufdo
commande n'est pas POSIX .la source
Essayer:
la source