在 GNU Parallel 中组合替换字符串和正则表达式
Combining replacement strings and regular expressions in GNU Parallel
我有格式的文件路径列表:
/data/nicotine_sensi/bam/9-2_box_1_S23_starAligned.sortedByCoord.out.bam
/data/nicotine_sensi/bam/9-2_box_3_S101_starAligned.sortedByCoord.out.bam
/data/nicotine_sensi/bam/9-3_box_1_S24_starAligned.sortedByCoord.out.bam
/data/nicotine_sensi/bam/9-3_box_3_S102_starAligned.sortedByCoord.out.bam
我想输入一个 gnu 并行命令,以便预定义替换字符串和 perl 或 --plus
替换字符串同时运行,但我在 tutorials。理想情况下,{/...}
和 {%_starAligned}
将共同产生:
9-2_box_1_S23
9-2_box_3_S101
9-3_box_1_S24
9-3_box_3_S102
然而,我得到的最接近的是:
parallel --rpl '{..} s:/data/nicotine_sensi/bam/::;s:_starAligned.sortedByCoord.out.bam::' \
echo {..} ::: $(ls $bam_dir/*.bam)
这对于其他目录来说很乱而且不太便携。
{/...}
的定义是:
s:.*/::; s:\.[^/.]+$::; s:\.[^/.]+$::; s:\.[^/.]+$::;
{%(.*)}
的定义是:
s/$$//;
结合起来你可以做到:
echo /data/nicotine_sensi/bam/9-3_box_1_S24_starAligned.sortedByCoord.out.bam |
parallel --rpl '{¤([^}]+?)} s:.*/::; s:\.[^/.]+$::; s:\.[^/.]+$::; s:\.[^/.]+$::; s/$$//;' echo {¤_starAligned}
如果您知道您将始终删除 _something
那么:
echo /data/nicotine_sensi/bam/9-3_box_1_S24_starAligned.sortedByCoord.out.bam |
parallel --rpl '{¤} s:.*/::; s:\.[^/.]+$::; s:\.[^/.]+$::; s:\.[^/.]+$::; s/_[^_]+$//;' echo {¤}
如果您将经常使用它,那么将其放入个人资料中可能是个好主意。
我有格式的文件路径列表:
/data/nicotine_sensi/bam/9-2_box_1_S23_starAligned.sortedByCoord.out.bam
/data/nicotine_sensi/bam/9-2_box_3_S101_starAligned.sortedByCoord.out.bam
/data/nicotine_sensi/bam/9-3_box_1_S24_starAligned.sortedByCoord.out.bam
/data/nicotine_sensi/bam/9-3_box_3_S102_starAligned.sortedByCoord.out.bam
我想输入一个 gnu 并行命令,以便预定义替换字符串和 perl 或 --plus
替换字符串同时运行,但我在 tutorials。理想情况下,{/...}
和 {%_starAligned}
将共同产生:
9-2_box_1_S23
9-2_box_3_S101
9-3_box_1_S24
9-3_box_3_S102
然而,我得到的最接近的是:
parallel --rpl '{..} s:/data/nicotine_sensi/bam/::;s:_starAligned.sortedByCoord.out.bam::' \
echo {..} ::: $(ls $bam_dir/*.bam)
这对于其他目录来说很乱而且不太便携。
{/...}
的定义是:
s:.*/::; s:\.[^/.]+$::; s:\.[^/.]+$::; s:\.[^/.]+$::;
{%(.*)}
的定义是:
s/$$//;
结合起来你可以做到:
echo /data/nicotine_sensi/bam/9-3_box_1_S24_starAligned.sortedByCoord.out.bam |
parallel --rpl '{¤([^}]+?)} s:.*/::; s:\.[^/.]+$::; s:\.[^/.]+$::; s:\.[^/.]+$::; s/$$//;' echo {¤_starAligned}
如果您知道您将始终删除 _something
那么:
echo /data/nicotine_sensi/bam/9-3_box_1_S24_starAligned.sortedByCoord.out.bam |
parallel --rpl '{¤} s:.*/::; s:\.[^/.]+$::; s:\.[^/.]+$::; s:\.[^/.]+$::; s/_[^_]+$//;' echo {¤}
如果您将经常使用它,那么将其放入个人资料中可能是个好主意。