[[逆引きシェルスクリプト]]

#navi(../)

*awkの出力をカンマ区切りにする方法 [#i6dcc623]
awkを使って、取得したデータをカンマ区切りで出力する方法を以下に記します。

#contents
#htmlinsertpcsp(linux_ads_top.html,linux-sp.html)

* OFSにカンマを設定する [#nd6a3ab2]
OFSにカンマを設定することにより出力がカンマ区切りになります。~
(printfによるカンマ区切り出力もできますが、この資料ではOFSを設定してカンマ区切りの出力をします)

* 実行例:スペース区切りのファイル [#gba3d261]
以下のファイルの1番めと3番めをawkで取得しカンマ区切りで出力する実行例を以下に記します。
 $ cat date.txt 
 1 Sunday 日曜日 星期天
 2 Monday 月曜日 星期一
 3 Tuesday 火曜日 星期二
 4 Wednesday 水曜日 星期三
 5 Thursday 木曜日 星期四
 6 Friday 金曜日 星期五
 7 Saturday 土曜日 星期六
- 実行結果
vオプションを使用しOFSにカンマを指定することにより出力がカンマ区切りになります。~
 $ awk -v OFS=, '{ print $1,$3 }' date.txt 
 1,日曜日
 2,月曜日
 3,火曜日
 4,水曜日
 5,木曜日
 6,金曜日
 7,土曜日
- BEGINを使った場合
以下の記述でも同様の動作になります。
 awk 'BEGIN { OFS="," } { print $1,$3 }' date.txt
printfを使う場合は以下のようになります。
 awk '{ printf("%s,%s\n",$1,$3) }' date.txt

* 実行例:カンマ区切りのファイル(CSVファイル) [#r1a58c1a]
以下のファイルの1番めと4番めをawkで取得しカンマ区切りで出力する実行例を以下に記します。
 $ cat date.csv 
 1,Sunday,日曜日,星期天
 2,Monday,月曜日,星期一
 3,Tuesday,火曜日,星期二
 4,Wednesday,水曜日,星期三
 5,Thursday,木曜日,星期四
 6,Friday,金曜日,星期五
 7,Saturday,土曜日,星期六
- 実行結果
 $ awk -F , -v OFS=, '{ print $1,$4 }' date.csv 
 1,星期天
 2,星期一
 3,星期二
 4,星期三
 5,星期四
 6,星期五
 7,星期六

* 関連記事 [#f384d075]
-[[逆引きシェルスクリプト/awkコマンドの区切り文字をカンマに変更]]
-[[逆引きシェルスクリプト/特定のカラムを削除し表示する・awkコマンド]]
-[[指定したフィールドを取り出す・cut>逆引きUNIXコマンド/指定したフィールドを取り出す・cut]]


#htmlinsertpcsp(linux_ads_btm.html,linux-sp.html)

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS