sed、awk、または grep を使用して、文字列の最初の動的発生を取得します。

sed、awk、または grep を使用して、文字列の最初の動的発生を取得します。

この文字列では

Loaded: loaded (/lib/systemd/system/<name>.service; disabled; vendor preset: enabled)

"...apache2.service;"その後、「アクティブ化」または「非アクティブ化」できる最初の項目をインポートし、シェルから印刷したいと思います。

grep、sed、awkを使ってどうやって得るのですか?

ベストアンサー1

使用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;との間の文字列を印刷します。;

おすすめ記事