我有这个命令:
for file in file??.txt; do awk -f vypis_z_dcout.awk "$file" > "$file".csv; done
结果是每个文件中的一列数字,我想像其列一样连接一个文件中所有文件的结果。如何添加到这个命令中?
paste <(cat f.csv) <(cat f1.csv) <(cat f2.csv) <(cat f3.csv) <(cat f4.csv) .... insert "$file".csv ... > out.csv
或者如何获取第一列中为 file01.csv、第二列中为 file02.csv 等的文件?谢谢
答案1
如果我明白你在说什么,你会从一组文件开始,其名称如下:
file01.txt
file02.txt
file03.txt
然后,您可以使用 依次处理每个文本文件awk
,这会为每个处理的文件生成一列数据。所以在这个假设的目录中,现在有 6 个文件:
file01.txt
file02.txt
file03.txt
file01.txt.csv
file02.txt.csv
file03.txt.csv
最后3个文件是程序的结果awk
。
要将上一步中生成的 CSV 文件粘贴到一个 CSV 文件中,其列数与上一步中生成的文件数相同,请使用:
paste -d '[DELIMITER]' file??.txt.csv > out.csv
将上述代码替换[DELIMITER]
为要在生成的 CSV 文件中用作分隔符的字符。例如,如果file01.txt.csv
包含以下数据:
1
2
3
...并file02.txt.csv
包含以下数据:
4
5
6
...并file03.txt.csv
包含以下数据:
7
8
9
...然后paste -d ';' file??.txt.csv > out.csv
将用以下内容填充文件“out.csv”:
1;4;7
2;5;8
3;6;9