やりたいこと
以下のように3行で一まとまりの繰り返しデータを
3788 GMOクラウド(株) 6720 3665 (株)エニグモ 1027 3769 GMOペイメントゲートウェイ(株) 11450 ...
以下のように一行で表示したい。
3788,GMOクラウド(株),6720 3665,(株)エニグモ,1027 3769,GMOペイメントゲートウェイ(株),11450 ...
環境情報
# bash --version GNU bash, version 4.4.12(1)-release (x86_64-pc-linux-gnu)
やり方
以下のワンライナーで冒頭の出力結果になります。今回は「3」行毎に繰り返しますがそれが異なる場合は以下の数字部分を修正してください。
awk 'NR%3 != 0{printf "%s ", $1} NR%3 == 0 {printf "%s\n",$1}' | sed -e s/" "/,/g
以下、補足です。
補足
とある株式データを処理する際に
株式コード
株式名称
株価
という繰り返し構造だったので同処理を行いました。
行番号であるNR
を場合分けに利用して改行ありなしを差し込むことでデータを一行にまとめています。
そのままであればスペース区切りとなるため、sed
でカンマ区切りとしてCSVファイル扱いがでいるようにしています。