SED или AWK или GREP, чтобы получить первое динамическое происшествие на строке

Возможно, вы снова вошли на свою машину после перехода по сети. Запустите whoami. Если вы вошли в систему из сети, значение в (паренсах) в конце строки должно быть именем узла, с которого вы вошли в систему (это может быть localhost). Если вместо этого вы видите число, например (:0.0), это означает, что вы запускаете программу в локальном окне X.

Чтобы отменить вход и вернуться к исходной оболочке, выполните exit

0
01.10.2018, 21:09
2 ответа

вы можете использоватьawk

 echo "Loaded: loaded (/lib/systemd/system/<name>.service; disabled; vendor preset: enabled)" | awk '{print $4}'

илиawk

echo "Loaded: loaded (/lib/systemd/system/<name>.service; disabled; vendor preset: enabled)" | awk -v RS=" " '/service/{getline;print "",$0}' | tr -d ";"

илиcut

echo "Loaded: loaded (/lib/systemd/system/<name>.service; disabled; vendor preset: enabled)" | cut -d';' -f 2

или sedдля извлечения disableмежду двумя точками с запятой -

 echo "Loaded: loaded (/lib/systemd/system/<name>.service; disabled; vendor preset: enabled)" | sed 's/^[^;]*;//; s/;.*//'
0
28.01.2020, 04:13

Использование SED:

echo "Loaded: loaded (/lib/systemd/system/<name>.service; disabled; vendor preset: enabled)" | sed -n 's/.*service; \([^;]*\).*/\1/p'

Использование Grep:

echo "Loaded: loaded (/lib/systemd/system/<name>.service; disabled; vendor preset: enabled)" | grep -o -P '(?<=service; ).*(?=;)'

Использование AWK:

echo "Loaded: loaded (/lib/systemd/system/<name>.service; disabled; vendor preset: enabled)" | awk -F 'service; |;' '{print $2}'
  • напечатает строку между service;и ;
  • .
0
28.01.2020, 04:13

Теги

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