cutコマンドとは?初心者でもわかるLinuxでテキストを区切って抽出する基本
生徒
「Linuxでファイルの一部分だけを取り出したいんですが、どうすればいいですか?」
先生
「それならcutコマンドが便利ですよ。文字や項目を区切って抜き出せます。」
生徒
「区切るってどういう意味ですか?パソコン初心者でも大丈夫ですか?」
先生
「大丈夫です。表をハサミで切り取る感覚で考えると、とてもわかりやすいですよ。」
1. cutコマンドとは?
cutコマンドは、Linuxでテキストファイルの一部分だけを取り出すための基本コマンドです。CSVファイルやログファイルなど、「区切りのあるデータ」を扱うときによく使われます。
たとえば「名前,年齢,住所」のようにカンマで区切られたデータから、「名前だけ」「年齢だけ」を抜き出したいときに活躍します。Windowsの表計算ソフトで列を非表示にするイメージに近いです。
2. テキストを区切るとはどういうこと?
「区切る」とは、文字と文字の間にある境界線を決めることです。Linuxでは、カンマ(,)やタブ、スペースなどがよく使われます。
初心者の方は「文章を線で分けて、必要な部分だけ切り取る」と考えると理解しやすいです。cutコマンドは、その線の位置を指定して取り出します。
3. cutコマンドの基本的な書き方
cutコマンドの基本構文はとてもシンプルです。
cut オプション ファイル名
ここでいう「オプション」とは、動きを指定する追加命令のことです。よく使われるのは、文字数で切る方法と、区切り文字で切る方法です。
4. 文字数で切り取る(-cオプション)
-cオプションを使うと、左から数えた文字の位置で切り取れます。番号は1から始まります。
echo "LinuxCommand" | cut -c 1-5
Linux
この例では、1文字目から5文字目までを取り出しています。英単語を途中まで表示したいときに便利です。
5. 区切り文字で切り取る(-d と -f)
実務でよく使われるのが、-d(区切り文字)と-f(何番目か)の組み合わせです。
echo "apple,banana,orange" | cut -d , -f 2
banana
カンマで区切られたデータの2番目だけを取り出しています。CSVファイル処理の基本中の基本です。
6. ファイルから特定の列を抽出する例
次は、実際のファイルから情報を抜き出す例です。以下のようなデータがあるとします。
cat users.txt
taro,20,tokyo
hanako,22,osaka
cut -d , -f 1 users.txt
taro
hanako
このように、名前の列だけを簡単に取り出せます。
7. cutコマンドが使えないケースと注意点
cutコマンドは便利ですが、決まった区切りがない文章には向いていません。また、スペースが複数ある場合は意図しない結果になることもあります。
その場合は、awkやsedといった別のテキスト処理コマンドを使います。ただし初心者のうちは、まずcutに慣れることが大切です。
8. cutと似たLinuxコマンドとの違い
cutは「単純に切り取る」専門のコマンドです。一方で、awkは計算や条件分岐もできます。
まずは「列を抜き出したい=cut」と覚えておくと、Linuxでのテキスト処理が一気に楽になります。