共通ヘッダーを使用した複数のファイルの関連付け

共通ヘッダーを使用した複数のファイルの関連付け

複数のテキストファイルがあり、各ファイルの内容は次のとおりです。

attribute1,attribute2,...
1,2,...

列名を記述する最初の行は、すべてのファイルで同じです。

ファイルの2番目の行をリンクし、元のファイルの各行のファイル名を含む新しい列を追加し、最初の行の1つを新しいファイルの最初の行にしたいと思います。たとえば、必要な新しいファイルは次のとおりです。

file,attribute1,attribute2,...
file1,1,2,...
file2,11,12,...
file3,21,22,...

どうすればいいですか?

ベストアンサー1

ファイル名を追加するには、次のようにしますawk

awk -v OFS=, 'NR==1{print "file", $0};FNR==2{print FILENAME, $0}' file1 file2 ... fileN >outfile

入力の最初の行()の場合は更新されたヘッダーをNR==1印刷し、||各ファイルの2行目()の場合は更新されFNR==2たヘッダー()FILENAMEと行($0)を印刷します。


編集する前の最初の答えです。
あなたはこれを行うことができますsed

sed -n '1p;n;p' file1 file2 ... fileN >outfile

-n印刷を抑制し、1p最初の行を印刷してから、各行(奇数行)ごとにパターンスペースを消去し、拡張行(つまりn偶数行)を読み取ってp印刷します。

おすすめ記事