perl/python/ruby에서 스크립트를 호출하고 출력을 검색합니다.

perl/python/ruby에서 스크립트를 호출하고 출력을 검색합니다.

나는 "grep"으로 파이프된 "zcat"과 몇 가지 다른 명령/스크립트를 사용하여 데이터가 포함된 파일에서 행을 추출하고 작동하는 tcsh "main" 스크립트를 상속했습니다. 추출된 행에는 숫자가 포함되어 있습니다. tcsh 스크립트에서 숫자를 가지고 계산을 하기가 점점 어려워져서 grepjob 명령과 다른 명령을 재사용할 수 있는 다른 방법을 찾고 있습니다 .

C로 계산을 쉽게 할 수 있습니다. 많은 중간 파일을 생성하지 않고 프로그램에서 숫자를 얻는 것은 한 명령의 출력을 다른 명령으로 파이프하는 것과 같이 어려운 일입니다.

"기본" 스크립트를 Perl, Ruby 또는 Python 스크립트로 변환하는 방법은 무엇입니까? 나는 원래 tcsh 스크립트보다 더 읽기 쉬운 Perl과 Ruby의 예제를 찾지 못했습니다. Python에서 os.system 호출은 아무것도 반환하지 않고 종료 상태만 반환합니다. 이는 C에서 발생하는 것과 동일한 문제입니다.

Python에서 os.system을 사용하는 것보다 프로그램, 스크립트 또는 프로그램 조합에서 정보를 얻는 더 좋은 방법이 있습니까? 아니면 Perl이나 Ruby를 자세히 살펴보아야 할까요?

답변1

Python에서 출력을 얻기 위해 call 명령을 사용하는 os.system()것은 올바른 방법이 아닙니다. 단일 명령의 경우 check_output()하위 프로세스 모듈의 기능을 사용할 수 있습니다.

당신의 경우에는 내가 살펴볼 것입니다선두이를 통해 Python에서 다음과 같은 작업을 수행할 수 있습니다.

from plumbum.cmd import zcat, grep
chain = zcat["your_file_name.gz"] | grep["-i", "pattern"]
result = chain()

result그런 다음 변수(문자열)에서 필요한 숫자를 가져옵니다.

plumbum사용하거나 pip설치 해야 합니다.easy_install

관련 정보