我可以通过以下方式过滤掉卡在我们的排队系统中的工作:
> 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
。我错过了什么?
每个空格都计入字段编号,甚至包括前导和连续的。因此,您需要使用
-f9
而不是-f2
. 或者,您可以awk '{ print $2 }'
完全使用 cut 命令代替。如果输出的间距是一致的
会产生像这样的输出
如果你想要第一列,它看起来像一个 PID 或其他标识符,那么:
如果您正在寻找 类似于用户名的utg002276l部分:
这使得 awk 使用斜杠和破折号作为字段分隔符,然后打印第三列。
您可以将所有空间压缩为一个: