cut
文字列を切り出す
SYNOPSIS
cut [OPTION]... [FILE]...
オプション一覧
b | バイト数で切り出す位置を指定します |
c | 文字数で切り出す位置を指定します(ロケール指定が必要) |
f | フィールド単位で切り出す位置を指定します。フィールドのデリミタは -d オプションで指定します |
d | フィールドのデリミタ |
s | デリミタを含まない行を出力しない |
-b
バイト指定で抜き出す
$ echo "123456789" | cut -b3
3
$ echo "123456789" | cut -b3-
3456789
$ echo "123456789" | cut -b3-5
345
$ echo "123456789" | cut -b-3
345
変な指定するとどうなるか。
$ echo "123456789" | cut -b0
cut: missing list of positions
Try `cut --help' for more information.
$ echo "123456789" | cut -b15-
$ echo "123456789" | cut -b-15
123456789
-c
文字数指定で抜き出す
-b
同様です。正しく動けばマルチバイトが文字数単位で抜き出せます。
-f
フィールド単位で抜き出す
デフォルトのデリミタは TAB
$ echo -e "12\t34\t56\t78\t9" | cut -f2
34
$ echo -e "12\t34\t56\t78\t9" | cut -f-2
12 34
$ echo -e "12\t34\t56\t78\t9" | cut -f2-
34 56 78 9
$ echo -e "12\t34\t56\t78\t9" | cut -f2-4
34 56 78
-d
フィールドのデリミタを指定する
$ echo "12 34 56 78 9" | cut -d" " -f2-4
34 56 78
-s
デリミタを含まない行を出力しない
デリミタを含まない行を出力しないようにするには、-s
オプションを付与する。