我试图避免编写一个代码,通过弄清楚脚本...
基本上,我在文件夹中有数千个文件...... 每个文件都具有以下格式
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脚本工具
执行此操作答案 0 :(得分:2)
另一个awk:
awk 'NR==1{id=$1;next}{print $1,id,$2}' FS=',' OFS=',' infile
答案 1 :(得分:2)
$ awk '
BEGIN { FS=OFS="," }
FNR==1 { k=$0; close(fname); fname="output"++nr".txt"; next }
{ print $1,k,$2 > fname }
' file1.txt file2.txt
$ cat output1.txt
12,1,3
13,1,2
$ cat output2.txt
22,2,1
如果您可以拥有空输入文件,那么您可能需要一个不同的解决方案(可能需要使用ARGIND和/或BEGINFILE / ENDFILE),但您需要告诉我们您希望如何处理这些文件。