cut 명령이 파이프에서 작동하지 않는 것 같습니다.

cut 명령이 파이프에서 작동하지 않는 것 같습니다.

다음을 통해 대기열 시스템에 정체된 작업을 필터링할 수 있습니다.

> qjobs | grep "racon" 
       5240703 racon-3/utg001564l-racon-3.fasta  H   1     1   0     10.0   0.0    150   :03   
       5241418 racon-3/utg002276l-racon-3.fasta  H   1     1   0     10.0   0.0    150   :02   
       5241902 racon-3/utg002759l-racon-3.fasta  H   1     1   0     10.0   0.0    150   :03   
       5242060 racon-3/utg002919l-racon-3.fasta  H   1     1   0     10.0   0.0    150   :04   
       5242273 racon-3/utg003133l-racon-3.fasta  H   1     1   0     10.0   0.0    150   :03   
       5242412 racon-3/utg003270l-racon-3.fasta  H   1     1   0     10.0   0.0    150   :04   
       5242466 racon-3/utg003325l-racon-3.fasta  H   1     1   0     10.0   0.0    150   :03   

그러나 qjobs | grep "racon" | cut -d " " -f2예를 들어 아무것도 반환되지 않습니다 racon-3/utg003325l-racon-3.fasta. 내가 놓친 게 무엇입니까?

답변1

모든 공백은 필드 번호에 포함되며 선행 공백과 연속 공백도 포함됩니다. 따라서 -f9대신 을 사용해야 합니다 -f2. 또는 awk '{ print $2 }'잘라내기 명령을 완전히 바꿀 수도 있습니다.

답변2

출력 간격이 일정한 경우

qjobs | grep "racon" | cut -c 16-47

다음과 유사한 출력을 생성합니다.

racon-3/utg002276l-racon-3.fasta

첫 번째 열을 PID나 다른 식별자처럼 보이게 하려면 다음을 수행하세요.

qjobs | grep "racon" | awk ' { print $1 } '

당신이 찾고 있다면utg002276l 사용자 이름과 유사한 부분:

qjobs | grep "racon" | awk -F'[/-]' ' { print $3 } '

이로 인해 awk는 슬래시와 대시 문자를 필드 구분 기호로 사용한 다음 세 번째 열을 인쇄합니다.

답변3

모든 공백을 하나로 압축할 수 있습니다.

qjobs | grep "racon" | tr -s ' ' | cut -d " " -f3

관련 정보