カット コマンド
cut コマンドは、/etc/passwd ファイルなど、1 文字で区切られた入力から 1 列のデータを選択するために最もよく使用されます。たとえば、cut コマンドは、次のように指定されたテキストの特定の列/文字を抽出するために使用されます:
- -c :文字のフィルタリングを指定します
- -d :フィールドの区切り文字を指定します
- -f :フィールド番号を指定します
カット コマンドの例
以下は、cut コマンドの使用法を示すいくつかの例です:
例 1
/etc/passwd ファイルから特定の列を抽出する簡単な例から始めましょう。 /etc/passwd ファイルのフィールドは「:(コロン)」区切り文字で区切られているため、コマンドでオプション「-d:」を使用します。
# cut -d: -f6 /etc/passwd
この例では、-d は区切り文字または区切り変数 (この場合はコロン) を指定し、-f は 1 から始まるフィールド (または列) の番号を指定します。
例 2
コンマ区切りのインデックスを使用して、/etc/passwd ファイルから複数の列を除外することもできます。例:
# cut -d: -f1,3 /etc/passwd
表示には、ログイン名とユーザー ID が含まれます。
例 3
ハイフンで区切られた範囲でフィールド番号を指定することもできます。列を除外するために、カンマ区切りのインデックスとハイフン区切りの範囲を組み合わせることもできます。例:
# cut -d: -f1,3-4 /etc/passwd
例 4
「~まで」または「~から」を意味するために、範囲外の数字の 1 つを残すことができます。たとえば、「最大 2」列を除外するには、次のコマンドを使用します:
# cut -d: -f-2 /etc/passwd
同様に、フィールドを 6 から最後まで表示するには、次のコマンドを使用します:
# cut -d: -f6- /etc/passwd
例 5
ただし、カットは区切られたデータに限定されません。また、-c を使用して文字数で分割したり、-b でバイト数で分割したりすることもできます。これは、行ごとに特定の数または範囲のバイトのみを取得する便利な方法です。以下の例に示すように、date コマンドの出力は入力として cut コマンドに送信され、次のように最初の 3 文字のみが画面に出力されます。
# date | cut -c1-3 Wed
cut コマンドのない date コマンドは、次のような出力を出力します:
# date Wed Dec 5 15:24:12 UTC 2018