我已经尝试过ls *.fasta | parallel --gnu "awk '{print $1}' > {/.}.outputfile.txt"
并且没有产生我需要的结果。我有48个文件,我需要在其中提取这些字段并将其输出为48个独立文件。
我可以很好地运行它,但是我必须为每个文件一个一个地做:awk '{print $1}' BLAST_output_file.txt > ID_ BLAST_output_file.txt
有人可以帮我吗?谢谢
答案 0 :(得分:1)
请您尝试以下。
awk '{if(FILENAME!=prev){close(prev)};print $1;prev=FILENAME}' *.fasta > output_all_file
如果您需要使用其他输出文件(尝试时看到):
awk '{if(FILENAME!=prev){close(prev)};print $1 > (FILENAME".id.blast.out.txt");prev=FILENAME}' *.fasta
答案 1 :(得分:1)
添加{}:
ls *.fasta | parallel --gnu "awk '{print $1}' {} > {/.}.outputfile.txt"
答案 2 :(得分:-1)
只需编写一个简单的bash脚本
for i in *.txt; do
awk '{print $1}' $i > $i.id.blast.out.txt
done