我有很多 CSV 文件,我需要每个文件的每一行中每个特定 CSV 文件的文件名。
原始文件内容abc123.csv:
ColVal_1;ColVal_2;ColVal_3
ColVal_4;ColVal_5;ColVal_6
Run Code Online (Sandbox Code Playgroud)
新文件内容:
ColVal_1;ColVal_3;ColVal_3;abc123.csv
ColVal_4;ColVal_5;ColVal_6;abc123.csv
Run Code Online (Sandbox Code Playgroud)
所有 CSV 文件都在同一目录中。我不想指定每个文件的名称。
使用sed和更简单、更容易、更快xargs。此处sed使用就地编辑,从而避免了额外的 shell 工具。
$ ls file{1..5}.txt|xargs -I% sed -i 's/$/;%/' %
Run Code Online (Sandbox Code Playgroud)
这是输出。
$ cat file{1..5}.txt
ColVal_1;ColVal_2;ColVal_3;file1.txt
ColVal_4;ColVal_5;ColVal_6;file1.txt
ColVal_1;ColVal_2;ColVal_3;file2.txt
ColVal_4;ColVal_5;ColVal_6;file2.txt
ColVal_1;ColVal_2;ColVal_3;file3.txt
ColVal_4;ColVal_5;ColVal_6;file3.txt
ColVal_1;ColVal_2;ColVal_3;file4.txt
ColVal_4;ColVal_5;ColVal_6;file4.txt
ColVal_1;ColVal_2;ColVal_3;file5.txt
ColVal_4;ColVal_5;ColVal_6;file5.txt
Run Code Online (Sandbox Code Playgroud)
怎么样:-
for i in *.csv; do awk '{print $0 ";" FILENAME }' $i > ${i}.tmp ; mv ${i}.tmp ${i} ; done
Run Code Online (Sandbox Code Playgroud)
mv如果您有更高版本,则可以避免使用awk,但这可能更便携。
| 归档时间: |
|
| 查看次数: |
11455 次 |
| 最近记录: |