특정 숫자가 포함된 파일에서 특정 줄을 선택하고 싶습니다. 검색하려는 파일 이름은 입니다 os_clusters/piRNA_clusters.bed
.
awk '{if (a[$0]++ == 0) {split($0,b,"."); ;split(b[1],c,"r"); print c[3]}};' test_non_enriched | xargs grep {} os_clusters/piRNA_clusters.bed
첫 번째 부분(파이프라인 전)이 작동합니다. 즉, 8707, 8824 등과 같이 검색할 용어를 생성합니다. 그러나 후반부는 작동하지 않습니다.
awk '' ... | xargs grep {} os_clusters/piRNA_clusters.bed
파이프라인에서 생성된 용어에 대한 대상 파일을 검색하지 않지만 검색 용어를 입력 파일로 처리합니다. 따라서 다음과 같은 오류 메시지가 나타납니다.
grep: 8707: No such file or directory
grep: 8824: No such file or directory
os_clusters/piRNA_clusters.bed
파이프라인에서 생성된 용어에 대해 파일을 검색하려면 무엇을 변경해야 합니까 ?
답변1
내 생각엔 네가 원하는 것 같아
... | grep -f - os_clusters/piRNA_clusters.bed
-f
grep
파일에서 검색 패턴을 가져오도록 지시 하고 -
파일이 실제로 표준 입력(귀하의 경우 파이프 출력)임을 알려줍니다.
비 GNU grep
사용 에 대한 의견을 주신 @rici에게 감사드립니다.
... | grep -f /dev/stdin os_clusters/piRNA_clusters.bed