从多个文件中获取多个列到一个文件中 shell
get multiple columns from multiple files into a single file shell
嗨,
我有多个包含多个列的文件,我想 select 从每个文件中提取几个不同的列并将其制作成单个文件。我已阅读 post
文件 1
Day present absent total
Mon 10 1 11
TUE 11 0 11
WED 9 2 11
THU 8 3 11
...
文件2
Day present absent total
Mon 18 3 21
TUE 15 6 21
WED 19 2 21
THU 17 4 21
....
文件 3
Day present absent total
Mon 50 1 51
TUE 51 0 51
WED 49 2 51
THU 48 3 51
....
制作成单个文件
Day present present present
Mon 10 18 50
TUE 11 15 51
WED 9 19 49
THU 8 17 48
....
如何使用 shell/bash 命令实现?
[awk '{a\[FNR\] = a\[FNR\]" " }END{for(i=0;i<FNR;i++) print a\[i\]}'][2]
快速方法:
paste file1 file2 file3|awk '{print , , , }'
如果您希望输出为 "pretty" 格式,paste 1 2 3|awk -v OFS='\t' '{print...}'
或将输出通过管道传输至 |column -t
。
输出:
Day present present present
Mon 10 18 50
TUE 11 15 51
WED 9 19 49
THU 8 17 48
嗨,
我有多个包含多个列的文件,我想 select 从每个文件中提取几个不同的列并将其制作成单个文件。我已阅读 post
文件 1
Day present absent total
Mon 10 1 11
TUE 11 0 11
WED 9 2 11
THU 8 3 11
...
文件2
Day present absent total
Mon 18 3 21
TUE 15 6 21
WED 19 2 21
THU 17 4 21
....
文件 3
Day present absent total
Mon 50 1 51
TUE 51 0 51
WED 49 2 51
THU 48 3 51
....
制作成单个文件
Day present present present
Mon 10 18 50
TUE 11 15 51
WED 9 19 49
THU 8 17 48
....
如何使用 shell/bash 命令实现?
[awk '{a\[FNR\] = a\[FNR\]" " }END{for(i=0;i<FNR;i++) print a\[i\]}'][2]
快速方法:
paste file1 file2 file3|awk '{print , , , }'
如果您希望输出为 "pretty" 格式,paste 1 2 3|awk -v OFS='\t' '{print...}'
或将输出通过管道传输至 |column -t
。
输出:
Day present present present
Mon 10 18 50
TUE 11 15 51
WED 9 19 49
THU 8 17 48