[[逆引きシェルスクリプト]]
#navi(../)
*awkの出力をカンマ区切りにする方法 [#i6dcc623]
awkを使って、取得したデータをカンマ区切りで出力する方法を以下に記します。
#contents
#htmlinsert(linux_ads_top.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]]
//#htmlinsert(linux_ads_btm.html)