こんなファイルがあったとき
$ cat member.csv
id,name,age
1,taro,21
2,jiro,18
3,saburo,16
4,shiro,15
5,goro,12
id だけ取り出したいという場合がありますよね?
そんな時は cut コマンドと sed コマンドを使えば簡単に取り出せます。
まず cut します。
cut -d ',' -f 1 member.csv
cut コマンドはその名の通り文字列を切り出すコマンドです。それぞれのオプションの意味は、、、
-d
は区切り文字の指定です。今回はカンマ区切りの入力ファイルなので、カンマを指定しています。何も指定しないとタブが区切り文字となります。
-f
は何番目の文字列を取得するかを指定します。例えば id は一列目なので、-f 1
となります。同じように name なら 2 、age なら 3 を指定すれば取得できます。
上記のコマンドを実行すると以下のようになります。
id
1
2
3
4
5
これで id が取り出せました。
しかし、今回取り出したいのは値だけなので、id という行は不要です。そこで、sed コマンドで消します。
sed コマンドは文字列の置換や削除を行うためのコマンドです。
今回は一行目を削除したいので、
cut -d ',' -f 1 member.csv | sed -e '1d'
とします。
-e
はスクリプトを記述するためのオプションです。そして、d
が削除を表します。一行目を削除したい場合は 1d
となります。一から五行目を削除したければ 1,5d
という様に指定します。
上のスクリプトを実行すると
1
2
3
4
5
無事 id だけを取り出せました。
余談
ちなみに sed コマンドで文字列の置換を行い場合は以下の様にします。
sed -e 's/,/|/g' member.csv
s/置換条件/置換文字/g
です。
id|name|age
1|taro|21
2|jiro|18
3|saburo|16
4|shiro|15
5|goro|12
こうなります。