Используйте классы символов с отрицанием ([^ ]
или [^[:space:]]
), как показал Роман, или инвертируйте соответствие, как показано ниже . Какой из них лучше, зависит от окружающей конструкции.
$ cat foo.txt
with space
spaceless
$ sed '/ /d' < foo.txt # (d)elete the line on match
spaceless
$ sed -n '/ /!p' < foo.txt # (p)rint if the pattern does not (!) match
spaceless
For compatibility with SysV, […]
systemd 234 […] -SYSVINIT […]
Вы собрали systemd без опции совместимости, поэтому поведение совместимости, описанное в руководстве, не будет присутствовать.
Насколько я могу судить по вашим символическим ссылкам, проблема именно в этом.
Если ваш init
является символической ссылкой на systemd
, вам нужно посмотреть, что systemd может получить в качестве аргумента.
systemd [OPTIONS...]
Starts up and maintains the system or user services.
-h --help Show this help
--test Determine startup sequence, dump it and exit
--no-pager Do not pipe output into a pager
--dump-configuration-items Dump understood unit configuration items
--unit=UNIT Set default unit
--system Run a system instance, even if PID != 1
--user Run a user instance
--dump-core[=BOOL] Dump core on crash
--crash-vt=NR Change to specified VT on crash
--crash-reboot[=BOOL] Reboot on crash
--crash-shell[=BOOL] Run shell on crash
--confirm-spawn[=BOOL] Ask for confirmation when spawning processes
--show-status[=BOOL] Show status updates on the console during bootup
--log-target=TARGET Set log target (console, journal, kmsg, journal-or-kmsg, null)
--log-level=LEVEL Set log level (debug, info, notice, warning, err, crit, alert, emerg)
--log-color[=BOOL] Highlight important log messages
--log-location[=BOOL] Include code location in log messages
--default-standard-output= Set default standard output for services
--default-standard-error= Set default standard error output for services
Так дело в том, что у вас на самом деле не настоящий init
, а просто связанный systemd
Есть лишний пакет "systemd -sysvcompat", и после этого можноsysvinit 0
(и, возможно, telinit )-, но тогда вам снова понадобится этот inittab, и остановка/завершение работы/перезагрузка Slackware 14.2 (никакой systemd там )меня не убедил.
Этот /usr/bin/sysvinit имеет тот же размер, что и "старый" init, а внутри он читается как :GCC: (GNU) 4.9.2
, иmiquels@cistron.nl
(я знаю это имя! он написал сисвинит! ). Так что это IS sysv -init. Они просто должны были переименовать его. В пакете он называется /usr/bin/init.
Увы, бедный Инит! так толкают!
re:6:once:/sbin/reboot
Это из моего inittab, который я использую при загрузке с init=/usr/bin/sysvinit
. /sbin/reboot — это ссылка на... systemctl! Что ж, это работает, но я не говорю, продолжайте... (не мое изобретение, я нашел его таким, как установленный archlinux)