SSブログ

awkで複数行(単位)を1行にするTips [Tips]

過去にpasteコマンドを使って複数行(単位)を1行にするTipsを書きました。
今回はawkを使って書きたいと思います。

sample1.txtが以下のように2行単位にデータが繰り返されています。
%cat sample1.txt
11111
aaaaa
22222
bbbbb
33333
ccccc

この2行を1行に,(カンマ)区切りにするには、以下のようにします。
awk '{if(NR%2)ORS=",";else ORS="\n";print}' sample1.txt
11111,aaaaa
22222,bbbbb
33333,ccccc

Tab区切りにしたいときは「,」を「\t」にします。
awk '{if(NR%2)ORS="\t";else ORS="\n";print}' sample1.txt

同じようにsample2.txtが以下のように3行単位にデータが繰り返されています。
cat sample2.txt
11111
aaaaa
#####
22222
bbbbb
$$$$$
33333
ccccc
+++++

この3行を1行に,(カンマ)区切りにするには、以下のようにします。
awk '{if(NR%3)ORS=",";else ORS="\n";print}' sample2.txt
11111,aaaaa,#####
22222,bbbbb,$$$$$
33333,ccccc,+++++

2行と3行の違いは、NR%2とNR%3です。

次回もお楽しみに!!

nice!(2)  コメント(0)  トラックバック(0) 
共通テーマ:パソコン・インターネット

nice! 2

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

※ブログオーナーが承認したコメントのみ表示されます。

Facebook コメント

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。