このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。
【Linux】特定の列を表示する:cutコマンド
cut
コマンドの概要
「cut
」コマンドは、テキストファイルや標準入力から特定のフィールド(列)を抽出するためのLinuxコマンドです。このコマンドは、データの整形や特定の情報を取り出す際に非常に便利です。デリミタ(区切り文字)によって分割されたフィールドを指定することも、文字位置を指定して切り出すこともできます。
【構文】cut [オプション] [ファイル名...]
- [オプション]: 切り出すフィールドや文字位置を指定するためのオプション。
- [ファイル…]: 対象となるファイル。省略すると標準入力から読み取ります。
主なオプションと説明
以下の表に、「cut
」コマンドの主なオプションとその説明をまとめます。
オプション | 説明 |
---|---|
-b | 指定したバイト位置を切り出します。例:-b 1-10 で最初の10バイトを表示。 |
-c | 指定した文字位置を切り出します。例:-c 1-10 で最初の10文字を表示。 |
-d | フィールドを区切るデリミタを指定します。デフォルトはタブ文字。例:-d ',' でカンマを区切り文字として使用。 |
-f | 指定したフィールドを切り出します。例:-f 1,3 で1番目と3番目のフィールドを表示。 |
コマンドの使用例と解説
以下に、「cut
」コマンドの具体的な使用例とその出力例を示します。
サンプルファイルの作成
まず、以下の内容を持つサンプルファイル「example.txt
」 を作成します。
・「nano example.txt
」コマンドを実行します。
nanoエディタを起動して、「example.txt」ファイルを作成します。
user01@ubuntu-vm:~$ nano example.txt
以下の内容を入力します。
1,John,Doe,28
2,Jane,Smith,34
3,Bob,Johnson,25
入力したら、「Ctrl + O」キーを入力して「Enter」キーで保存、「Ctrl + X」キーでnanoエディタを終了させます。
1.特定のフィールドを表示
・「cut -d ',' -f 2 example.txt
」コマンドを実行します。
カンマ区切りの2番目のフィールド(名前)を表示します。
user01@ubuntu-vm:~$ cut -d ',' -f 2 example.txt
John
Jane
Bob
2.複数のフィールドを表示
・「cut -d ',' -f 1,4 example.txt
」コマンドを実行します。
カンマ区切りの1番目と4番目のフィールド(IDと年齢)を表示します。
user01@ubuntu-vm:~$ cut -d ',' -f 1,4 example.txt
1,28
2,34
3,25
3.文字位置を指定して表示
・「echo "abcdefghij" | cut -c 1-5
」コマンドを実行します。
最初の5文字を表示します。
user01@ubuntu-vm:~$ echo "abcdefghij" | cut -c 1-5
abcde
4.特定のバイト位置を表示
・「echo "1234567890" | cut -b 1-5
」コマンドを実行します。
最初の5バイトを表示します。
user01@ubuntu-vm:~$ echo "1234567890" | cut -b 1-5
12345
5.標準入力から読み取り
・「echo "1,John,Doe,28" | cut -d ',' -f 3
」コマンドを実行します。
キーボード(=標準入力)から「echo “1,John,Doe,28″」と入力すると、ディスプレイ(=標準出力)に「hello world」と出力される内容をパイプ( | )して「cut」コマンドの入力としています。
カンマ区切りの3番目のフィールド(姓)を表示します。
user01@ubuntu-vm:~$ echo "1,John,Doe,28" | cut -d ',' -f 3
Doe
演習で作成したファイルの削除
演習で使用したファイルを削除します。
・「rm example.txt
」コマンドを実行し、「ls」コマンドで削除されたかどうかを確認します。
user01@ubuntu-vm:~$ rm example.txt
user01@ubuntu-vm:~$ ls
snap テンプレート ドキュメント ピクチャ 公開
ダウンロード デスクトップ ビデオ ミュージック
まとめ
「cut
」コマンドは、テキスト処理において特定の列やフィールドを抽出するために非常に有用です。デリミタによるフィールド指定や文字位置、バイト位置の指定など、柔軟にデータを切り出すことができます。ログファイルやデータファイルの解析、データの整形など、さまざまなシチュエーションで活用できます。