2017-08-16 58 views
1

有多個文件:的毗連多個文件,並在前面加上文件名,每行在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 
+0

多少在文件中的行? – Serge

+0

每個文件可能有不同的行數 – Kiril

回答

5

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

我可以使該泛型匹配任何csv文件嗎? – Kiril

+1

這足夠通用。 '$ 0'打印滿行。 – anubhava

相關問題