awkコマンドを使用して、出力に必要な正確な文字列を提供するshスクリプトをどのように作成できますか?

awkコマンドを使用して、出力に必要な正確な文字列を提供するshスクリプトをどのように作成できますか?

ps ax | grep bhyve端末でコマンドを実行するときに正しい文字列をキャッチする必要があるスクリプト(FreeBSDで動作する必要があり、デフォルトでshを使用している)を書くのに誰かが役立つことを願っています。たとえば、

# ps ax | grep bhyve

43137  -  Is       0:00.00 bhyve: system.pwd (bhyve)
43138  -  Is       0:00.00 bhyve: system.grp (bhyve)
43132  0  IC       2:06.86 bhyve: vm0:18 (bhyve)
43234  1  D+       0:00.00 grep bhyve (csh)

私がするとき:

ps ax | awk '/bhyve: vm/{print $6}'

それは以下を提供します:

vm0:18
/bhyve:

私がするとき:

ps ax | awk '/bhyve: [vm]/{print $6}'

それは以下を提供します:

vm0:18

しかし、両方が間違っています。結果は次のとおりです。0:18

ありがとうございます。

答え1

次のコードは機能します(文字列から最初の2つの記号を削除します)。

ps ax | awk '/bhyve: [vm]/{print substr($6,3)}'

関連情報