web-dev-qa-db-ja.com

パイプでカットコマンドが機能しないようです

キューシステムでスタックしたジョブを除外することができます。

> 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。私は何を取りこぼしたか?

10
user977828

すべてのスペースは、先頭の連続したフィールドであっても、フィールド番号にカウントされます。したがって、-f9の代わりに-f2を使用する必要があります。または、cutコマンド全体の代わりにawk '{ print $2 }'を使用できます。

出力の間隔が一貫している場合

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

次のような出力を生成します

racon-3/utg002276l-racon-3.fasta

PIDまたはその他の識別子のように見える最初の列が必要な場合は、次のようにします。

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

ユーザー名のようなtg002276l部分を探している場合:

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

これにより、awkはスラッシュとダッシュ文字をフィールド区切り文字として使用し、3番目の列を出力します。

1
Criggie