将多个文件合二为一,包括文件名

Sva*_*van 0 bash shell awk cat

我一直在尝试将多个文本文件组合成包含文件名。

我当前的文件内容是:

1111,2222,3333,4444
Run Code Online (Sandbox Code Playgroud)

我所追求的是:

File1,1111,2222,3333,4444
File1,1111,2222,3333,4445
File1,1111,2222,3333,4446
File1,1111,2222,3333,4447
File2,1111,2222,3333,114444
File2,1111,2222,3333,114445
File2,1111,2222,3333,114446
Run Code Online (Sandbox Code Playgroud)

我找到了多个示例,如何将它们全部组合在一起,但没有将它们组合在一起,包括文件名。

Rav*_*h13 6

你能不能试试以下。考虑到您的 Input_file 扩展名是.csv.

awk 'BEGIN{OFS=","} {print FILENAME,$0}' *.csv > output_file
Run Code Online (Sandbox Code Playgroud)

在看到 OP 的评论后,如果文件扩展名被.txt尝试:

awk 'BEGIN{OFS=","} {print FILENAME,$0}' *.txt > output_file
Run Code Online (Sandbox Code Playgroud)