cut

cut とは、標準入力の各行から一部分を切り出して、標準出力へ出力するLinux/Unixコマンドである。

cut -b list [file ...]
cut -c list [file ...]
cut -f list [-d separator] [file ...]

オプション

以下に示すオプションを cut コマンドに指定できる。

-b
切り出し位置をバイト数で指定する。

各行の先頭から5バイト目までを切り出す例を示す。

$ cut -b -5 file.txt

各行の5バイト目から行末までを切り出す例を示す。

$ cut -b 5- file.txt
-c
切り出し位置を文字数で指定する。

各行の2文字を切り出す例を示す。

$ cat foo.txt
ABCDE
あいうえお
$ cut -c 2 foo.txt
C
う

各行の3文字目から6文字目までを切り出す例を示す。

$ cut -c 3-6 file.txt

各行の1文字目、3文字目及び5文字目を切り出す例を示す。

$ cut -c 1,3,5 file.txt
-f
切り出し位置をフィールド数で指定する。デフォルトのフィールド区切り文字はタブである。

/etc/passwdファイルのフィールド区切り文字に「:」を指定して、最初のフィールドを切り出す例を示す。

$ cut -f 1 -d : /etc/passwd
-d
フィールドの区切り文字を指定する。
file
標準入力ではなく、ファイルから入力する。

空白で区切る

入力行を空白で区切ってフィールドを切り出すには、-d オプションで区切り文字に空白を指定する。

空白はシングルクォーテーションまたはダブルクオーテーションで囲む。

$ cut -f 1 -d ' '
$ cut -f 1 -d " "

最後のフィールド

cutコマンドで最後のフィールドを切り出すには、文字単位で行を反転する rev コマンドと組み合わせる。

rev コマンドを使って行ごとに文字を反転したものを、rev コマンドで最初のフィールドを切り出して、再び rev コマンドで反転する。

$ cat example.tsv | rev | cut -f 1 | rev

入力

標準入力

引数を指定することにより、ファイルから入力することもできる。

出力

標準出力

Linuxコマンド