Назад | Перейти на главную страницу

Прокомментируйте все строки, соответствующие некоторому шаблону

Мне нужно закомментировать все строки, содержащие "dlclose" для каждого файла в текущем каталоге и любых подкаталогах (рекурсивно). Это мое лучшее предположение, учитывая то, что я смог узнать из различных руководств.

grep -lIR "dlclose" . | grep -v ".svn" | sed -i 's/.*dlclose.*/\/\/&/g'

Два grep успешно находят все файлы, которые я хочу изменить, но sed утверждает unterminated s command.

Вы пытаетесь редактировать на месте (-i вариант) STDIN.

удалять -i вариант, бесполезен.

Заметка:

Вы можете значительно ускорить команду избегая второго grep, исключая в корне ненужные каталоги

Пытаться

grep -lIR --exclude-dir=.svn "dlclose" . | xargs sed -i bak 's/.*dlclose.*/\/\/&/g'  

или

for f in $(grep -lIR --exclude-dir=.svn "dlclose" .)
do
   sed -i bak 's/.*dlclose.*/\/\/&/g' $f
done