входы:
line1 with the PATTERN that contains ( )
line2 with the PATTERN that contains ( )
lineN with the PATTERN that contains ( )
выходы:
line1 with the PATTERN that contains ( ) ;
line2 with the PATTERN that contains ( ) ;
...
lineN with the PATTERN that contains ( ) ;
Я попробовал это:
find . -name "test.txt" -print | xargs sed -i "/PATTERN/ s/$)/); /g"
но это не сработало.
shell
sed
line-editor
user3342338
источник
источник
-exec ... +
вместо-exec ... \;
, если ваша находка позволяет это.Предполагая, что
PATTERN
это на самом деле( )
и что-то может идти между( )
и что они не обязательно находятся в конце строки:источник
Использование
ex
(что эквивалентноvi -e
/vim -e
).Один файл:
Все
test.txt
файлы рекурсивно:Примечание: убедитесь, что опция globbing (
**
) включена:shopt -s globstar
если ваша оболочка поддерживает это.Примечание:
:bufdo
команда не POSIX .источник
Пытаться:
источник