파이썬에서 centos 7 awk함수를 구현하고 싶습니다~ 도와주시면 감사드리겠습니다.

blade0322의 이미지

ps -ef | grep user1 | awk '$1=="user1" { print $2 }'

위의 명령어를 system함수나 subprocess함수를 이용하여 값을 받아오고 싶은데, 파이썬 스크립트로

import subprocess
arch = subprocess.check_output("ps -ef | grep user1 | awk '$1=='user1' { print $2 }'", shell = True)

이렇게 작성한 결과 invalid syntax 오류가 발생합니다.
이유를 알고 싶습니다~

chanik의 이미지

따옴표 문제같네요. 아래와 같이 'user1' 을 \"user1\" 정도로 바꾸면 동작할 것입니다.

import subprocess
arch = subprocess.check_output("ps -ef | grep user1 | awk '$1==\"user1\" { print $2 }'", shell = True)
blade0322의 이미지

감사합니다!!!

익명 사용자의 이미지

그런데 왜 이렇게 하시려는 건가요? 프로세스 출력을 받아다가 파이선 내부에서 처리하게 하면 누가 찾아와서 벌금이라도 물리나요?