Concat多个文件,并在bash中的每一行前添加文件名

Concat多个文件,并在bash中的每一行前添加文件名,bash,csv,concatenation,Bash,Csv,Concatenation,有多个文件: 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

有多个文件:

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

您可以使用
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

该文件中有多少行?每个文件可能有不同的行数该文件中有多少行?每个文件可能有不同的行数我可以将其设置为通用以匹配任何csv文件吗?这已经足够通用了<代码>$0打印整行。我可以将其设置为通用以匹配任何csv文件吗?这已经足够通用了<代码>$0打印整行。