複数のCSVファイルの各行にあるCSVファイル内のファイル名を関連付けます。

複数のCSVファイルの各行にあるCSVファイル内のファイル名を関連付けます。

多くのCSVファイルがあり、各ファイルの各行に各特定のCSVファイルのファイル名が必要です。

元のファイルの内容abc123.csv:

ColVal_1;ColVal_2;ColVal_3
ColVal_4;ColVal_5;ColVal_6

新しいファイルコンテンツ:

ColVal_1;ColVal_3;ColVal_3;abc123.csv
ColVal_4;ColVal_5;ColVal_6;abc123.csv

すべてのCSVファイルは同じディレクトリにあります。各ファイルの名前を指定したくありません。

ベストアンサー1

sedより簡単で、より簡単で、より速く使用できますxargs。ここでは、sed追加のシェルツールを避けるために内部編集が使用されます。

$ ls file{1..5}.txt|xargs -I% sed -i 's/$/;%/' %

これが出力です。

$ 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

おすすめ記事