cut 命令似乎在管道中不起作用

use*_*828 10 grep 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   
Run Code Online (Sandbox Code Playgroud)

但是,qjobs | grep "racon" | cut -d " " -f2没有返回 eg racon-3/utg003325l-racon-3.fasta。我错过了什么?

Jos*_*ica 25

每个空格都计入字段编号,甚至包括前导和连续空格。因此,您需要使用-f9而不是-f2. 或者,您可以awk '{ print $2 }'完全代替 cut 命令使用。

  • 如果 OP 无论如何要使用 `awk`,他们可以将它与 `grep` 操作一起折叠:`qjobs | awk '/racon/ { 打印“$2”}'`。 (13认同)