Unix 如何在现有csv文件的第一列中包含文件名

Unix 如何在现有csv文件的第一列中包含文件名,unix,awk,Unix,Awk,我有现有的csv文件。我想修改csv文件并在文件的第一列中包含文件名 Example file.csv 1,love,anger Modified csv file.csv file.csv,1,love,anger 我们可以在awk或unix中使用一个行程序吗 事先非常感谢这就像:awk'{if($0)printf(“%s,%s\n”,FILENAME,$0);else print FILENAME;}'file.csv一样简单 其中file.csv是输入文件名 UPD.:我修改了命令添

我有现有的csv文件。我想修改csv文件并在文件的第一列中包含文件名

Example
file.csv

1,love,anger

Modified csv
file.csv
file.csv,1,love,anger
我们可以在awk或unix中使用一个行程序吗


事先非常感谢

这就像:
awk'{if($0)printf(“%s,%s\n”,FILENAME,$0);else print FILENAME;}'file.csv一样简单

其中file.csv是输入文件名

UPD.:我修改了命令添加条件以正确处理空行

$ awk '{print FILENAME (NF?",":"") $0}' file

不错,比我的变种短。您甚至可以删除
-F,
是的,它可以。请参阅Arnold Robbins的《有效的Awk编程》,第四版,了解如何解决此问题和许多其他文本操作问题。在您阅读并试图解决问题后,如果您有任何问题,请告诉我们。