複数のテキストファイルがあり、各ファイルの内容は次のとおりです。
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
印刷します。