использование sed для удаления подходящей строки из нескольких текстовых файлов - PullRequest
0 голосов
/ 29 апреля 2011

Все файлы в каталоге моего проекта имеют одну строку:

var $useDbConfig = 'default_dev';

Как я могу удалить эту строку из всех файлов, а затем сохранить один и тот же файл с помощью команды из одной строки, используя sed?

Ответы [ 3 ]

1 голос
/ 29 апреля 2011

Аргумент -i для sed редактируется на месте.С аргументом, это сохраняет резервную копию.Итак, вы хотите что-то вроде этого:

STR="var $useDbConfig = 'default_dev';"
sed -i.bak "/$STR/d" *
1 голос
/ 29 апреля 2011

вы можете попробовать

sed -i.bak '/var \$useDbConfig = .*default_dev.*;/d' *

или вы можете использовать awk

awk '/var/&&/\$useDbConfig/&&/default_dev/{next}{print $0>FilENAME}' *
0 голосов
/ 29 апреля 2011

Если ваша версия sed поддерживает параметр -i, вы можете использовать эту команду для интерактивного удаления строки из всех файлов в текущем каталоге:

sed -i "/var \$useDbConfig = 'default_dev';/d" ./*

Более того: способ цитирования строки работает в bash. В других оболочках (например, csh) вы должны настроить шаблон.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...