정렬되지 않은 공백으로 구분된 필드에서 열 추출

정렬되지 않은 공백으로 구분된 필드에서 열 추출

일반 형식을 따르지 않는 출력에서 ​​빈 열을 어떻게 추출할 수 있습니까?

예를 들어 를 입력하면 ps -ef모든 프로세스, 프로세스 ID 등이 표시됩니다. 마지막 열이나 특정 열만 가져올 수 있는 방법은 무엇입니까?

답변1

옵션을 사용하면 -o표시할 필드를 지정할 수 있습니다. 에서 man ps찾거나 사용할 수 있는 사용 가능한 필드 목록입니다 ps L.

예를 들어, 를 사용하면 ps -eo user,command아래와 같이 사용자 이름과 명령이 표시됩니다.

root /bin/login --
root /sbin/getty 

및 매개변수를 사용할 수도 있습니다 -O. 이렇게 하면 일부 기본 필드가 사용되고 지정한 필드가 추가되지만 출력을 구문 분석하려면 를 권장합니다 o.

답변2

아마도 당신은 다음을 원할 것입니다:

ps -eo comm

명령 이름을 얻으려면 또는

ps -eo args

명령 매개변수 가져오기 또는

ps -eo args="Last-Arg" | awk '{print $NF}'

마지막 매개변수를 가져옵니다.

관련 정보