ps
명령에 의해 반환 된 데이터를 구문 분석해야하는 스크립트 작업. Redhat/Centos에서는 열 구분 기호를 지정하기가 쉽지만 BSD version of PS과 같이 간단하지는 않습니다.OSX (BSD)에서 PS 열 구분 기호 설정
나는, 출력이 될 것이다는 어떤 문자로 공백을 대체 할 awk
, sed
또는 tr
을 사용하는 것이 가능하지만, 형식이 args
또는 어딘가에 중간에 comm
을 가지고 말할 수 것 알고
$ ps -o pid,ppid,args,user | head
PID PPID ARGS USER
60140 494 /Applications/iTerm.app/Contents/MacOS/iTerm2 --server login -fp jdoe
60144 60141 -bash jdoe
55574 494 /Applications/iTerm.app/Contents/MacOS/iTerm2 --server login -fp jdoe
55576 55575 -bash jdoe
20710 494 /Applications/iTerm.app/Contents/MacOS/iTerm2 --server login -fp jdoe
20712 20711 -bash jdoe
66703 494 /Applications/iTerm.app/Contents/MacOS/iTerm2 --server login -fp jdoe
66707 66704 -bash jdoe
66881 494 /Applications/iTerm.app/Contents/MacOS/iTerm2 --server login -fp jdoe
보시다시피, args
열의 데이터에는 공백이있을 수 있습니다.
정말 자극적인데, 결과물 끝에 args
을 넣지 않아도 정상적으로 작동하는 것으로 보이는 솔루션이 실제로 발견되었지만 해결책을 기억하지 못하거나 다시 찾을 수 있습니다.
헤더가 열 데이터와 정렬되기 때문에 열 머리글 행을 사용하여 열의 너비를 결정할 수 있다고 생각 했었지만 그보다 간단한 해결책이 있습니다.
도움을 주시면 감사하겠습니다. 감사!
왜 그냥'마지막 열로 args' 수없고,'Awk'와 데이터를 읽어? 그런 식으로 사용할 수 있습니까? – Inian
유일한 확실한 구분 기호는 null 문자입니다. – chepner
이 데이터로 실제로 무엇을하고 싶습니까? 너 최종 게임이 뭐니? 우리가 목표를 달성하는 방법을 알아낼 수 있는지 알아 봅시다. 잘못된 길을 알려주는 것만 보지 마십시오. – ghoti