ホーム > テキスト処理・検索 > cut

cutコマンドガイド:ファイルから特定の列を抽出する

`cut`コマンドは、テキストファイルやパイプを介して渡されたデータから、特定のフィールド(列)、バイト、または文字を切り出すために使用されます。主にCSVファイルやログファイルなどから必要なデータのみを抽出したり加工したりする際に便利で、`awk`や`grep`と組み合わせてデータ処理パイプラインを構築する上で重要な役割を果たします。

cutコマンドの概要

`cut`は、その名の通り「切り取る」という意味で、テキストデータの各行を区切り文字(デリミタ)を基準に複数のピースに分割し、その中から必要なピースだけを選択して出力します。このコマンドはシンプルで高速なため、複雑なパターンマッチングを必要としない簡単なデータ抽出作業に適しています。

cutの主な機能

  • 特定の区切り文字で区切られたフィールド(列)の抽出
  • 行の特定のバイト範囲の抽出
  • 行の特定の文字(キャラクター)範囲の抽出
  • 標準入力とファイルの両方を処理可能

主要オプション

cutコマンドの主要オプションを使用して、データを正確に切り出すことができます。

1. フィールド(列)ベースの抽出

2. バイトおよび文字ベースの抽出

生成されたコマンド:

コマンドを組み合わせてみてください。

説明:

`cut` コマンドを実行します。

これらのオプションを組み合わせて、AIと一緒に仮想的にコマンドを実行してみてください。

よく使われる例

cutコマンドを活用した様々な実践例を通して、データ抽出方法を習得しましょう。

空白で区切られたファイルから特定の列を抽出

cat /etc/passwd | cut -d: -f1

`passwd`ファイルからユーザー名(最初のフィールド)のみを抽出します。`-d`オプションを指定しない場合、デフォルトのタブで区切られますが、`passwd`ファイルは`:`を区切り文字として使用するため、`:`と`-f1`を指定する必要があります。

CSVファイルから名前とメールアドレスを抽出

cut -d',' -f1,3 users.csv

カンマ(`,`)で区切られた`users.csv`ファイルから、名前(最初のフィールド)とメールアドレス(3番目のフィールド)を抽出します。

ファイルから特定の文字範囲を抽出

cut -c1-5 data.txt

`data.txt`ファイルの各行から、最初の文字から5番目の文字までを切り出します。

パイプと組み合わせてIPアドレスを抽出

ifconfig eth0 | grep 'inet ' | cut -d: -f2 | cut -d' ' -f1

`ifconfig`コマンドの結果をパイプで`grep`と`cut`に渡し、IPアドレスのみを抽出します。(例:`ifconfig | grep 'inet ' | cut -d ' ' -f2`)

特定のフィールドを除外して出力

cut -d: -f1,6 --complement /etc/passwd

`passwd`ファイルからユーザー名(1番目のフィールド)とホームディレクトリ(6番目のフィールド)を除いた残りの情報を出力します。


関連するコマンド

機能的に類似しているか、よく一緒に使われるコマンドです。


同じカテゴリのコマンド