2017-03-07 5 views
-2

私はこのようなファイルがあります:ファイルの最初の行をすべての最初の列に繰り返す方法は?

Tax: FOO BAR BAR 
MQ 292018,794;7841123,751;97,000 
MQ 293930,660;7841868,082;95,000 
MQ 295908,118;7842349,097;93,000 

を私はこれで変更したい:

Tax: FOO BAR BAR;MQ 292018,794;7841123,751;97,000 
Tax: FOO BAR BAR;MQ 293930,660;7841868,082;95,000 
Tax: FOO BAR BAR;MQ 295908,118;7842349,097;93,000 

私はそれを行うには、SEDやAWKを使用することを考えて。誰でもアイデアがありますか?

答えて

4

awkはワンライナー:

SEDで
awk 'NR==1{a=$0;next}{print a";"$0}' file 
+0

ありがとう、たくさん。 – Orthophilos

2

あなたはheadで最初の行を取得し、その後、最初の行を削除するためにsedを使用し、残りの行の先頭に最初の行のコンテンツを追加することができます。

first_line=$(head -1 file) 
sed "1d;s/^/$first_line;/" file > file.modified 
+1

あなたは '&'プラスSをエスケープする必要があります'\ 1'と等価です。 '\ 2'など、' $ first_line'から始まります。それ以外の場合、sedは構文エラーを引き起こす可能性があります。 – hek2mgl

1

sed '1{h;d;};G;s/\(.*\)\n\(.*\)/\2 \1/' file 
関連する問題