Использование команды sed для удаления строк в файле в Debian Linux

RH5 использовал программу инициализации SVR4 для управления демонами. RH7 удалил SVR4 init и заменил его на systemd .

Команда serviceустарела, и вы перестали бы ее использовать. serviceтеперь представляет собой простую оболочку вокруг "новой" systemctlкоманды (для ретро-совместимости -со спецификациями LSB ).

Насколько я знаю, systemctlне поддерживает какие-либо выходные теги .

Если вам нужно программно проверить статус службы, systemctlпредлагает множество «команд» для получения статуса службы. Например. systemctl is-active sshd.service, systemctl is-enabled sshd.service, systemctl is-failed sshd.service, systemctl is-system-running sshd.service.

1
18.08.2021, 15:41
2 ответа

Пробовал через awk

awk '!/something[^-]|something$/' filename >tmpfile && mv tmpfile filename

выход

cat filename

something-
-1
20.08.2021, 10:26

Предположим, что важнее сохранить строк, содержащих something-, чем удалить строк, содержащихsomething:

sed '/something/ { /something-/!d; }' file

Это находит все строки, содержащие строку something, и удаляет все эти строки, если они также не содержат something-.

Тестирование:

$ cat file
something something blah blah
something something- blah blah
somethingelse
something
something-
$ sed '/something/ { /something-/!d; }' file
something something- blah blah
something-
1
23.08.2021, 10:02

Теги

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