GNU Core Utilities/cut
表示
cut コマンドは、ファイルや標準入力から特定の列(フィールド)や文字を抽出するためのコマンドです。データの加工やフィルタリングに役立ちます。GNU coreutils に含まれており、Linux では GNU 版が、FreeBSD では BSD 版が提供されています。基本的な動作は共通していますが、細かなオプションの違いがあります。
基本的な使い方
[編集]cut [オプション] [入力ファイル]
主なオプション(GNU coreutils版)
[編集]主なオプション オプション 説明 -f, --fields=LIST抽出するフィールドを指定(カンマ区切りで複数指定可能) -d, --delimiter=DELIM区切り文字を指定(デフォルトはタブ) -c, --characters=LIST抽出する文字の範囲を指定 -b, --bytes=LIST抽出するバイトの範囲を指定 -s, --only-delimited区切り文字がある行だけを抽出 -n, --complement指定した範囲以外を抽出 -z, --zero-terminated出力の各フィールドをヌル文字で区切る
例
[編集]列(フィールド)を抽出
[編集]cut -f 1 file.txt
file.txt の1列目(タブ区切り)を抽出。
複数の列を抽出
[編集]cut -f 1,3 file.txt
file.txt の1列目と3列目を抽出。
区切り文字を指定して抽出
[編集]cut -d ',' -f 2 file.csv
file.csv のカンマ区切りで2列目を抽出。
文字の範囲を指定して抽出
[編集]cut -c 1-5 file.txt
file.txt の1文字目から5文字目までを抽出。
バイトの範囲を指定して抽出
[編集]cut -b 1-5 file.txt
file.txt の1バイト目から5バイト目までを抽出。
区切り文字がある行のみ抽出
[編集]cut -s -f 2 file.txt
区切り文字(タブ)が含まれている行の2列目を抽出。
指定した範囲以外を抽出
[編集]cut -f 1,3 -n file.txt
1列目と3列目以外の列を抽出。
ヌル文字で区切った出力
[編集]cut -z -f 1 file.txt
出力をヌル文字で区切って表示。
FreeBSD 版との違い
[編集]FreeBSD でも cut コマンドは提供されていますが、GNU coreutils 版といくつか違いがあります。
主な違い:
[編集]-z(ヌル文字区切り)オプションが FreeBSD にはない- FreeBSD 版の
cutには、-zオプションがないため、ヌル文字で区切られた出力を扱うことができません。
- FreeBSD 版の
-n(指定範囲以外抽出)オプションが FreeBSD にはない- FreeBSD 版の
cutには、-nオプションがないため、指定した範囲以外のフィールドを抽出することができません。
- FreeBSD 版の
- GNU coreutils 版を FreeBSD で使う方法
coreutilsパッケージをインストールするとgcutという名前で GNU 版cutが使える。
pkg install coreutils gcut -f 1 file.txt # GNU coreutils 版の cut
詳しくは、それぞれの環境で man cut を確認してください。