我想从文件中挑选出包含给定数字的某些行。我要搜索的文件名为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
Run Code Online (Sandbox Code Playgroud)
第一部分在管道之前起作用——它产生要搜索的术语,例如 8707、8824 等。但是,后一部分没有。
awk '' ... | xargs grep {} os_clusters/piRNA_clusters.bed
Run Code Online (Sandbox Code Playgroud)
它不是在目标文件中搜索管道产生的术语,而是将搜索术语视为输入文件。因此,我收到如下错误消息:
grep: 8707: No such file or directory
grep: 8824: No such file or directory
Run Code Online (Sandbox Code Playgroud)
我需要更改什么才能在文件中搜索os_clusters/piRNA_clusters.bed管道产生的术语?
Jos*_* R. 38
我想你想要
... | grep -f - os_clusters/piRNA_clusters.bed
Run Code Online (Sandbox Code Playgroud)
-f告诉grep从文件中获取其搜索模式,并-告诉它该文件实际上是标准输入(在您的情况下是管道的输出)。
感谢@rici 的评论,非 GNUgrep使用
... | grep -f /dev/stdin os_clusters/piRNA_clusters.bed
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
34552 次 |
| 最近记录: |