rm 与反向匹配

rm 与反向匹配

我向我们的 HPC 提交了 6490 个作业

> ls -1 split-data/*.fasta | wc -l
6490

> ls -1 split-data/*.fasta
split-data/utg000001l.fasta
split-data/utg000002l.fasta
split-data/utg000003l.fasta
split-data/utg000004l.fasta
split-data/utg000005l.fasta

不幸的是,93 个工作岗位被搁置。

> 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   
       ...

现在,我想再次重新提交 93 个保留的作业,为此,我想删除racon已成功完成的输入文件。

以下命令查找我不想删除的文件。

 qjobs | grep "racon" | awk '{ print $2 }' | sed 's|racon-3/||' | sed 's|-racon-3||' 
utg001564l.fasta
utg002276l.fasta
utg002759l.fasta
utg002919l.fasta
utg003133l.fasta
...

如何将上述命令组合起来rm以实现反向匹配删除?

先感谢您

答案1

ls -1 split-data/*.fasta | cut -d/ -f2 |sort > /tmp/total
qjobs | grep "racon" | awk '{ print $2 }' | sed 's|racon-3/||' | sed 's|-racon-3||' | sort >  /tmp/dnot
comm -23 /tmp/total /tmp/dnot |
xargs printf 'split-data/%s\n' |
xargs -l -t rm

相关内容