Как удалить строку из файла, содержащего sh расширение?

Я использую Ubuntu. Я имею fileName.sh файл, содержащий 1 000 строк и я должен удалить 399 number строка является этой командой, достаточно для удаления строки.

Команда:- sed -i '399d' test.sh

Там какая-либо потребность состоит в том, чтобы измениться в этой команде? И можно ли дать мне больше предложений для удаления строки из файла?

0
задан 14 January 2019 в 00:07

1 ответ

Лучше (но stiull небезопасный) для удаления строки с помощью ее содержания, чем использование номера строки. Если Вы хотите удалить строку, содержание которой известно:

sed -i /{contents}/d in.sh

Другое решение состоит в том, чтобы использовать grep-v:

grep -v '{contents}' <in.sh >out.sh

В обоих случаях {содержание} является regexp, который соответствует содержанию, которое Вы хотите удалить, зная, что строки только с буквами и числами и несколькими избранными специальными символами являются регулярными выражениями для себя, таким образом:

sed -i /somefile/d in.sh
grep -v 'somefile' <in.sh >out.sh

удалит любую строку, содержащую somefile от входа. Но имейте в виду, что они могли также соответствовать большему количеству вещей (например, somefile2 был бы также подобран), если Вы не начинаете использовать больше полного regexps, например, с помощью ^{contents}$ соответствовать строкам, которые являются точно {contents}, исключая тех, которые содержат {contents} и дополнительные вещи.

0
ответ дан 26 October 2019 в 13:22

Другие вопросы по тегам:

Похожие вопросы: