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