使用文件中的列作为输出文件变量名

使用文件中的列作为输出文件变量名

头部测试区域.bed

21      15390708       
21      15890068        16388793
21      16390041        16888505
21      16889055        17388185
21      17388731        17886839

我想使用 .bed 文件的每一行作为输出名,例如:

while readline  
do zip.sh > 21_15390708_ 15889554.zip
            21_16390041-16888505.zip

我读了一些关于 xargs 能够做到这一点的内容。但我对它如何将每一行输出到唯一的输出文件名感到困惑。

xargs -a testregions.bed -I {} zip inputfile {} >> outputfile_{}.zip

等等。任何帮助深表感谢。

答案1

这是一种易于理解的方法,您可以对testregions.bed.首先,删除原始文件中的所有空格testregions.bed,然后仅将数字保存到新文件中new.txt,如下所示:

cat testregions.bed | tr -d "[:blank:]" > new.txt

然后,您将为您的每一行创建一个新文件,如下new.txt所示:

cat new.txt | while read line do touch "$line".zip done

然后你可以删除new.txt

rm new.txt

test.sh因此,创建.zip文件的脚本testregions.bed将如下所示:

#!/bin/sh

cat testregions.bed | tr -d "[:blank"]" > new.txt
cat new.txt | while read line
do
        touch "$line".zip
done
rm new

相关内容