CUT(1)

名称
cut - ファイルの各行の、指定した部分を取り出す

書式
cut -b list [-n] [file ...] cut -c list [file ...] cut -f list [-d delim] [-s] [file ...]

解説
cut は、 file から行を読み込み、 list の指定に従って選択した部分を取り出して標準出力に出力します。 file 引数が指定されない場合もしくはこれが単一のダッシュ (‘-’) の場合、 cut は標準入力から読み込みます。 list には、カラム番号、もしくはフィールド番号を指定します。 フィールドは特定の文字で区切られた領域です。 カラム番号およびフィールド番号は 1 から始まります。

list オプション引数には、コンマもしくは空白で区切られた 複数の増加方向の番号もしくは番号範囲を指定することができます。 番号範囲は、1 番目の番号、ダッシュ (‘-’) 、2 番目の番号の 3 つの組から構成され、 1 番目の番号から 2 番目の番号までの複数のフィールドもしくは複数のカラムを 選択します。 範囲には 1 番目の番号および 2 番目の番号も含まれます。 番号もしくは番号範囲の前にダッシュをつけた場合には、 1 番目の番号までのすべてのフィールドもしくはカラムも選択します。 番号もしくは番号範囲の後にダッシュをつけた場合には、 最後の番号以降のすべてのフィールドもしくはカラムも選択します。 番号もしくは番号範囲は、 繰り返しても、重なっても、いかなる順番であっても構いません。 また、入力行に指定のフィールドやカラムがない場合、 エラーとはなりません。

オプションとしては以下のものがあります:

-b list
    バイト単位で指定します。

-c list
    文字単位で指定します。

-d delim
    フィールドを区切る文字として delim を使用します。デフォルトではタブが使用 されます。

-f list
    タブで区切られたフィールド単位で指定します。 出力フィールドはタブで区切られます。

-n  マルチバイト文字を分割しません。

-s  区切り文字のない行を出力しないようにします。このオプションが 指定されてない場合、区切り文字がない行はそのまま出力されます。

環境変数
-n オプションが指定された場合、 LANG, LC_ALL, LC_CTYPE の環境変数が、 environ(7) の記述通りに、 cut の動作に影響します。

使用例
ユーザのログイン名とシェルを、システムの passwd(5) ファイルから “name:shell” という組で取り出します:

    cut -d : -f 1,7 /etc/passwd

現在ログインしているユーザに対し、名前とログイン時刻を表示します:

    who | cut -c 1-16,26-38

診断

関連項目
paste(1)

規格
cut ユーティリティは p1003.2 準拠です。

歴史
cut コマンドは AT&T System III UNIX に登場しました。

バグ
-c オプションは -b オプションの同義語ですが、 マルチバイト文字をサポートするローケルでは正しく動作しません。

フィールドに対する動作では (-f オプション指定時には)、 cut はマルチバイト文字を認識しませんし、マルチバイトシーケンス中の delim 文字は認識されてしまいます。