在bash中处理文件夹中的文件

在bash中处理文件夹中的文件,bash,awk,Bash,Awk,我试图避免写一个代码,这是通过找出脚本 基本上,我在文件夹里有上千个文件。。。 每个文件都有以下格式 primary_id secondary_id,score,date 例如: file1.txt 1 12,3,2003-12-29 13,2,2003-12-29 file2.txt 2 22,1,2004-01-20 我想要的是..处理这些文件并为每个文件创建以下输出: output1.txt 12,1,3 13,1,2 output2.txt 22,2,1 等等 如何使用bash

我试图避免写一个代码,这是通过找出脚本

基本上,我在文件夹里有上千个文件。。。 每个文件都有以下格式

primary_id
secondary_id,score,date
例如:

file1.txt
1
12,3,2003-12-29
13,2,2003-12-29

file2.txt
2
22,1,2004-01-20
我想要的是..处理这些文件并为每个文件创建以下输出:

output1.txt
12,1,3
13,1,2

output2.txt
22,2,1
等等

如何使用bash、awk unix脚本工具来实现这一点

另一个awk:

awk  'NR==1{id=$1;next}{print $1,id,$2}'  FS=',' OFS=',' infile
另一个awk:

awk  'NR==1{id=$1;next}{print $1,id,$2}'  FS=',' OFS=',' infile
如果您可以有空的输入文件,那么您可能需要不同的解决方案,可能需要使用argid和/或BEGINFILE/ENDFILE,但您需要告诉我们您希望如何处理这些文件


如果您可以使用空的输入文件,那么您可能需要另一种解决方案,可能需要使用ARGIND和/或BEGINFILE/ENDFILE,但您需要告诉我们您希望如何处理这些文件。

即使它已被接受,我的感觉是,在新的输出文件名中直接使用主\u id。这是一种可能性,但在所有输入文件中它可能不是唯一的,然后呢?我们需要OP提供一些更具代表性的输入和/或告诉我们更多关于他的要求,以了解是否需要更改。即使已经接受,我的感觉是,直接在新的输出文件名中使用主id。这是一种可能性,但在所有输入文件中可能不是唯一的,然后呢?我们需要OP提供一些更具代表性的输入和/或告诉我们更多关于他的要求,以了解是否需要更改。对于多个文件,将NR更改为FNR,这样就可以将其更改为:awk'FNR==1{id=$1;next}{print$1,id,$2>output id.txt}'FS=','OFS=','file*.txt对于多个文件,将NR更改为FNR,因此可以将其更改为:awk'FNR==1{id=$1;next}{print$1,id,$2>output id.txt}'FS=','OFS=','file*.txt