* コマンド女子 *

~自分の備忘録~

指定した部分を取り出したい 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