2015/09/25 11:20:59

cut

文字列を切り出す

SYNOPSIS

cut [OPTION]... [FILE]...

オプション一覧

cutコマンドのオプション
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 オプションを付与する。

サイト内検索