连接多个文件,并在 bash 中的每一行前面加上文件名



有多个文件:

1.csv
2.csv
...

包含一些通用内容,例如:

[1.csv]
a
b
c
[2.csv]
d
e
f

我想将文件的内容连接成一个文件,但每一行都有文件名。所以结果应该看起来像这样:

[concatenated.csv]
1.csv;a
1.csv;b
1.csv;c
2.csv;d
2.csv;e
2.csv;f

您可以使用awk

awk -v OFS=';' '{print FILENAME, $0}' *.csv
1.csv;a
1.csv;b
1.csv;c
2.csv;d
2.csv;e
2.csv;f

最新更新