Удалить строку, заканчивающуюся символом новой строки в текстовом файле - PullRequest
0 голосов
/ 27 июля 2010

Мне нужно удалить одну и ту же строку в большом количестве текстовых файлов. Я пытался использовать sed, но я не могу заставить его удалить символ новой строки в конце. Следующее успешно удаляет строку, но не перевод строки:

sed -i -e 's/VERSION:1//' *.txt

Я пытался использовать следующее, чтобы удалить символ новой строки, но он не работает:

sed -i -e 's/VERSION:1\n//' *.txt

В любом случае можно ли указать новую строку в команде sed substitute ИЛИ есть ли другой инструмент командной строки, который я могу использовать для достижения своей цели? Спасибо

Ответы [ 2 ]

3 голосов
/ 27 июля 2010

Для этого вы можете использовать команду sed:

sed -i -e '/VERSION:1/d'

.

В следующем тексте приведен пример:

pax> echo 'hello
> goodbye
> hello again' | sed '/oo/d'
hello
hello again

Вы также должны проверитьхотите ли вы сопоставить целые строки, например:

sed -i -e '/^VERSION:1$/d'

, поскольку в том виде, в каком оно есть, это также приведет к удалению строк, подобных следующему:

VERSION:10
CONVERSION:1
2 голосов
/ 27 июля 2010
sed '/VERSION:1/{:q;N;s/VERSION\n//g;t q}' file
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...