cut カット

英語表記cut

日本語表記フィールド抽出

正式名称cut

危険度安全

What does it mean?

決まった区切りや位置に基づいて必要部分だけを抽出します。CSVに似た単純構造や、コロン区切りのファイルを扱う時に便利です。

Command Quest

cut を今日の道具にする

決まった区切りや位置に基づいて必要部分だけを抽出します。CS...

$ cut オプション... [ファイル]...
関連用語0
次のコマンド0
FAQ2
参照3

概要

決まった区切りや位置に基づいて必要部分だけを抽出します。CSVに似た単純構造や、コロン区切りのファイルを扱う時に便利です。

基本構文

cut オプション... [ファイル]...

詳細解説

cutは、各行の一定位置や区切り記号に基づいて、一部だけを抜き出すコマンドです。/etc/passwdのユーザー名だけを取り出す、ログの先頭列だけを見る、といった作業でよく使います。

強みは速さと単純さです。書式が安定したテキストなら非常に扱いやすい反面、引用符を含む複雑なCSVや可変長のあいまいな構造には向きません。そうした場面ではawkや専用の解析道具を使うほうが安全です。

実務では、確認用の短いパイプライン、集計前の前処理、IDやユーザー名など単一列の抽出で特に力を発揮します。区切り文字と対象番号を正確に把握することが重要です。

このコマンドを使う場面

区切り記号が明確なテキストから特定列だけを取り出したい時、列数の多い一覧から必要項目だけを見たい時に使います。

まず安全に試す方法

1. printf 'alice:1001:/bin/bashn' > users.txt
2. cut -d ':' -f 1 users.txt
3. cut -d ':' -f 2 users.txt

3分ミッション

少しでも手を動かすと定着しやすくなります。終わった項目にチェックを入れてください。

  1. cut -d ':' -f 1 /etc/passwdでユーザー名だけを取り出します。

  2. 固定長風の入力に対してcut -cを試します。

資格試験との関連

  • LinuC レベル1
    範囲: 1.03.2 フィルタを使ったテキストストリームの処理
    根拠: official
    cutは、テキスト処理系の基本フィルタとしてLinuCレベル1の範囲に関わります。
  • LPIC-1
    範囲: 103.2 フィルタを使ったテキストストリームの処理
    根拠: official
    cutは、LPIC-1でテキストストリームへフィルタを適用する技能と関係します。
  • 共通基礎
    範囲: Linuxコマンド基礎
    根拠: editorial
    cutは、ファイル操作またはテキスト処理の基本を支えるため、試験横断の共通知識として価値があります。

オプション

  • -d 区切り文字
    区切り文字を指定します。
    cut -d ':' -f 1 /etc/passwd
  • -f 番号一覧
    フィールド番号を指定します。
    cut -f 1,3 data.tsv
  • -c 位置範囲
    文字位置で抽出します。
    cut -c 1-8 file.txt
  • --complement
    指定部分以外を出力します。
    cut --complement -d ':' -f 7 /etc/passwd

実行結果サンプル

  • cut -d ':' -f 1 /etc/passwd | head -n 3
    root
    daemon
    bin

戻り値コード

  • 0 正常終了。抽出に成功しました。
  • >0 オプション不正や読取失敗などで失敗しました。

使用例

  • cut -d ':' -f 1 /etc/passwd
  • cut -c 1-8 file.txt
  • cut --complement -d ':' -f 7 /etc/passwd

よくあるエラー

  • CSVの抽出結果が崩れる
    原因: 引用符や区切りの入れ子をcutでは正しく扱えません。
    対処: awkやCSV専用ツールを使います。
  • 期待した列が取れない
    原因: 区切り文字やフィールド番号を誤っています。
    対処: まずheadやcat -Aで元データの構造を確認します。

導入・互換性情報

POSIXで基本機能は標準化されています。GNU実装では--complementなどの拡張があります。多バイト文字の扱いは環境差に注意が必要です。

注意点 / セキュリティリスク

危険度は低いですが、複雑なCSVや引用符付きデータに対して単純な区切り抽出を行うと誤読します。構造が単純かどうかを見極めて使ってください。

FAQ

  • Q. cutとawkはどう使い分けますか。
    A. 単純な列抽出ならcut、条件や計算が必要ならawkが向いています。
  • Q. タブ区切りも扱えますか。
    A. はい。-f系は既定でタブ区切りを扱いやすいです。

参照リンク

関連記事