unix - コマンドリファレンス - 文字列の切り取り cut
1. 概要 「cut」は、正式には、「ファイルの各行の選択された部分を切り取る」のが目的のコマンドです。 本ページは、下記のサイトを参考にさせていただきました。 「CUT(1) - 汎用コマンド」 「【 文字列を抜き出す「cut」 】」 2. 説明 「man」を読むと、「4.3BSD」時代から存在するコマンドのようです。 「jman」を引用をさせていただくと。 cut は、 file から行を読み込み、 list の指定に従って選択した部分を取り出して標準出力に出力します。 file 引数が指定されない場合もしくはこれが単一のダッシュ (`-') の場合、 cut は標準入力から読み込みます。 list には、カラム番号、もしくはフィールド番号を指定します。フィールドは特定の文字で区切られた領域です。カラム番号およびフィールド番号は 1 から始まります。 list オプション引数には、コンマもしくは空白で区切られた複数の増加方向の番号もしくは番号範囲を指定することができます。番号範囲は、1 番目の番号、ダッシュ (`-') 、2 番目の番号の 3 つの組から構成され、 1 番目の番号から 2番目の番号までの複数のフィールドもしくは複数のカラムを選択します。範囲には 1 番目の番号および 2 番目の番号も含まれます。番号もしくは番号範囲の前にダッシュをつけた場合には、 1 番目の番号までのすべてのフィールドもしくはカラムも選択します。番号もしくは番号範囲の後にダッシュをつけた場合には、最後の番号以降のすべてのフィールドもしくはカラムも選択します。番号もしくは番号範囲は、繰り返しても、重なっても、いかなる順番であっても構いません。また、入力行に指定のフィールドやカラムがない場合、エラーとはなりません。 ですって。 面倒くさくて、まだ、全部読む気になれませんが。 基本形は。 cut -b list [ -n][ file ...] cut -c list [ file ...] cut -f list [ -w | -d delim][ -s][ file ...] わたしは、「conky」で、「Linux」の「lsb_release」コマンドの部分文字列を切り取るのに使っています。 説明書きにもあるように、ファイルを指定していなければ、標準入力を文字列として、受け取ることになっています。 echo 1234567890 | cut -c 5-7 というコマンドを実行すると。 567 という結果が出力されます。 「1234567890」という文字列の 5文字目から、7文字目までを切り取っているわけです。
「CUT(1) - 汎用コマンド」 「【 文字列を抜き出す「cut」 】」
cut は、 file から行を読み込み、 list の指定に従って選択した部分を取り出して標準出力に出力します。 file 引数が指定されない場合もしくはこれが単一のダッシュ (`-') の場合、 cut は標準入力から読み込みます。 list には、カラム番号、もしくはフィールド番号を指定します。フィールドは特定の文字で区切られた領域です。カラム番号およびフィールド番号は 1 から始まります。 list オプション引数には、コンマもしくは空白で区切られた複数の増加方向の番号もしくは番号範囲を指定することができます。番号範囲は、1 番目の番号、ダッシュ (`-') 、2 番目の番号の 3 つの組から構成され、 1 番目の番号から 2番目の番号までの複数のフィールドもしくは複数のカラムを選択します。範囲には 1 番目の番号および 2 番目の番号も含まれます。番号もしくは番号範囲の前にダッシュをつけた場合には、 1 番目の番号までのすべてのフィールドもしくはカラムも選択します。番号もしくは番号範囲の後にダッシュをつけた場合には、最後の番号以降のすべてのフィールドもしくはカラムも選択します。番号もしくは番号範囲は、繰り返しても、重なっても、いかなる順番であっても構いません。また、入力行に指定のフィールドやカラムがない場合、エラーとはなりません。
cut -b list [ -n][ file ...] cut -c list [ file ...] cut -f list [ -w | -d delim][ -s][ file ...]
echo 1234567890 | cut -c 5-7
567