如何串联由for循环创建的多个文件

时间:2018-10-28 15:25:18

标签: bash shell

我有多个文件名为./bin.1.fa,./bin.2.fa,...。
我想编辑这些文件,然后将结果与for循环连接。
我尝试过的代码是:

for file in Metabat/bins.*.fa; 
do
stub=${file%.fa}
stub2=${file#Metabat\/bins.}
grep '^>' $file | cut -c 2- | sed "s/$/$stub2/" 
done

(我选择了以>开头的行,然后剪切出第一个字符>,然后在末尾连接1)
我想使用>>进行连接,但是我该怎么做呢? 谢谢。

2 个答案:

答案 0 :(得分:0)

有关:

A=1; for file in  Metabat/bins.*.fa; do grep '^>' $file | cut -c 2- | sed "s/$/$A/"; let A=$A+1; done > concatenated_file

答案 1 :(得分:0)

由于@OznOg,我有了一个主意,将代码分为两步。

for file in Metabat/bins.*.fa;  do stub=${file%.fa}; stub2=${stub#Metabat\/bins.}; grep '^>' $file | cut -c 2- | sed "s/$/,$stub2/" > Metabat/edit_$stub2 ; done  

然后我放

cat Metabat/edit* > Metabat/edit0