指定した部分を取り出したい cut
▼コマンド
【cut】
・テキストファイルの指定した部分の文字列を切り出して表示する
▼オプション
-b
フィールド単位ではなく、バイト単位で抽出する範囲を指定する
-c
フィールド単位ではなく、文字単位で抽出する範囲を指定する
-d
フィールドのデリミタ(※)を指定する。-dオプションを指定しない場合はタブが指定される
-f
抽出するフィールドの番号を指定する
-s
区切り文字が存在しない行は出力しない
※デリミタ…要素の区切りとなる記号や特殊文字(の並び)のこと。CSVなら「,」など。
▼デリミタ・区切り位置の指定方法
・デリミタの指定方法
,の場合:-d','
半角スペースの場合:-d' '
・位置の指定方法 [-cオプション 文字単位]
-c3:3文字目
-c1,4:1文字目と4文字目
-c3-5:3~5文字目
-c-3:先頭から3文字
-c5-:5文字目以降
・位置の指定方法 [-fオプション フィールド単位]
-f3:3番目のフィールド
-f1,4:1番目と4番目のフィールド
-f3-5:3~5番目のフィールド
-f-3:先頭(1番目)から3番目のフィールド
-f5-:5番目以降のフィールド
▼使用例
こんなファイルがあります。
$ cat test.csv
ID,name,age
1,aaa,20
2,bbb,34
3,ccc,40
4,ddd,35
5,eee,20
//1~4番目の文字を取り出す
$ cut -c1-4 test.csv
ID,n
1,aa
2,bb
3,cc
4,dd
5,ee
//1番目のフィールドを取り出す
$ cut -d',' -f1 test.csv
ID
1
2
3
4
5
//2番目のフィールド以降を取り出す
$ cut -d',' -f2- test.csv
name,age
aaa,20
bbb,34
ccc,40
ddd,35
eee,20