cut -cオプションの使い方を完全ガイド!初心者でもわかるLinux文字抽出の基本
生徒
「Linuxのコマンドって、文字を一部分だけ取り出すこともできるんですか?」
先生
「できますよ。cutコマンドを使えば、行の中から必要な文字だけを簡単に抜き出せます。」
生徒
「プログラミング未経験でも大丈夫ですか?黒い画面はちょっと怖くて…」
先生
「大丈夫です。文字をハサミで切り取る感覚で使えるので、順番に見ていきましょう。」
1. cutコマンドとは?
cutコマンドは、Linuxでテキストデータの一部分だけを抜き出すための基本コマンドです。ログファイル、CSVファイル、コマンドの実行結果など、文字が並んだデータを扱うときによく使われます。
Windowsでいうと、メモ帳で文字をドラッグしてコピーする作業を、コマンド一行で自動化できるイメージです。特にサーバー操作やデータ処理の場面で重宝します。
2. -cオプションの役割(文字単位で切り出す)
-cオプションは、文字の位置を指定して抽出するための指定です。左から何文字目、という数え方で指定します。
たとえば「abcdef」という文字列があった場合、1文字目は「a」、3文字目は「c」です。-cはこの位置を元に処理します。
区切り文字ではなく純粋に文字数で扱う点が、後で紹介する-dや-fとの大きな違いです。
3. 基本的な使い方(1文字だけ抽出)
まずは一番シンプルな例です。テキストファイルの各行から、先頭1文字だけを取り出してみます。
echo "Linux" | cut -c 1
L
この例では「Linux」という文字列の1文字目だけが表示されています。|はパイプと呼ばれ、前の結果を次のコマンドに渡すための記号です。
4. 範囲指定で複数文字を抽出する
-cでは、範囲を指定して複数の文字をまとめて取り出すこともできます。
echo "abcdef" | cut -c 2-4
bcd
「2-4」は「2文字目から4文字目まで」という意味です。ハサミでその部分だけ切り取る感覚で覚えると理解しやすいです。
5. 飛び飛びの文字を指定する方法
連続した範囲だけでなく、複数の位置をカンマ区切りで指定することもできます。
echo "123456789" | cut -c 1,3,5
135
このように、必要な位置だけをピンポイントで取り出せるため、データ確認や簡易チェックに便利です。
6. ファイルから文字を抽出する例
実際の現場では、ファイルに対して使うことがほとんどです。次はテキストファイルの各行から先頭3文字を取り出します。
cut -c 1-3 sample.txt
ABC
DEF
GHI
ファイル内のすべての行に同じ処理が行われるのが特徴です。行ごとに決まった位置の文字を確認したい場合に向いています。
7. 日本語文字を扱うときの注意点
-cは文字数を基準に処理しますが、日本語は環境によって1文字の幅が異なる場合があります。そのため、結果がずれることがあります。
これは文字コードという仕組みが関係しています。初心者のうちは「英数字中心のデータで使う」と覚えておくと安心です。
8. -cと他のcutオプションとの違い
cutには他にもオプションがあります。-dと-fは、区切り文字を使って列を抜き出します。
一方、-cは見た目そのままの文字位置で扱うため、固定フォーマットのデータ処理に向いています。
用途に応じて使い分けることで、Linuxでのテキスト処理が一気に楽になります。