如何在多个文件上使用 awk(每个文件的第一个字段)并获取每个输入文件的结果

How can I use awk (first field of each file) on multiple files and get the result for each input file

我试过了ls *.fasta | parallel --gnu "awk '{print }' > {/.}.outputfile.txt" 而且它没有产生我需要的结果。我有 48 个文件,我需要在其中提取这些字段并将它们输出到 48 个独立文件。

我可以运行这很好,但我必须对每个文件一个一个地做:awk '{print }' BLAST_output_file.txt > ID_ BLAST_output_file.txt

有人可以帮我吗?谢谢

刚刚写了一个简单的bash脚本

for i in *.txt; do
    awk '{print }' $i > $i.id.blast.out.txt
done

能否请您尝试以下。

awk '{if(FILENAME!=prev){close(prev)};print ;prev=FILENAME}'  *.fasta > output_all_file

如果您需要不同的输出文件(从您的尝试中看到):

awk '{if(FILENAME!=prev){close(prev)};print  > (FILENAME".id.blast.out.txt");prev=FILENAME}'  *.fasta

添加{}:

ls *.fasta | parallel --gnu "awk '{print }' {} > {/.}.outputfile.txt"