На этот вопрос уже есть ответ здесь:
Я пытаюсь редактировать файл на удаленном сервере через терминал, и чтобы внести изменения в указанный файл, я должен (или использовал до сих пор) использовать команду sed.
в приведенном ниже файле я хочу удалить строку STUFF_456
и ее символ новой строки.
STUFF_123
STUFF_456
STUFF_789
Однако, когда я использую эту команду в sed
, у меня остается пустая строка.
$ sed -i 's/STUFF_456//' /file/path/here.txt
STUFF_123
STUFF_789
Мне нужно избавиться от пустой строки и сохранить две другие записи.
Как я могу этого добиться?
Можно удалить строку с:
sed '/^STUFF_456$/d'
Это d
причем элиты каждый строка STUFF_456
, ^
отмечает начало строки и $
отмечает конец.
С Вашим примером:
$ sed '/^STUFF_456$/d' /file/path/here.txt
STUFF_123
STUFF_789