Как я могу найти определенную строку в нескольких файлах (с заданным расширением) в каталоге и заменить все впоследствии (включая строку поиска) пустой строкой?


пример

Я ищу "mystring"

Файл содержит:

foo bar mystring bar foo

Я пытаюсь добраться до:

foo bar

2 ответа2

4
sed -i "s/mystring.*//" <filename>

-i выполняет замену inline (т.е. infile == outfile). Без -i результат замены будет выведен на стандартный вывод.

2

Если вам не нужно рекурсивно работать с файлами в подкаталогах,

perl -p -i -e 's/mystring.*//' *.ext

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .