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

다음 코드는 작동할 수 있습니다(문자열에서 처음 두 기호 제거).

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

관련 정보