Комментируйте все строки, соответствующие некоторому шаблону
Мне нужно закомментировать все строки, содержащие "dlclose" для каждого файла в текущем каталоге и любых подкаталогах (рекурсивно). Это мое лучшее предположение на данный момент, учитывая то, что я смог узнать из различных руководств.
grep -lIR "dlclose" . | grep -v ".svn" | sed -i 's/.*dlclose.*/\/\/&/g'
Два greps успешно находят все файлы, которые я хочу изменить, но sed
требует unterminated s command
,
1 ответ
Вы пытаетесь редактировать на месте (-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