Linuxコマンド辞典 cutコマンド(テキスト処理)
ファイルの各行から指定したフィールド(列)を抜き出す「cut」コマンドの概要と使い方を記載しています。
RHEL Fedora CentOS Vine Deblan Ubuntu Plamo
参考サイト:Man page of INSTALL
概要・使用方法
指定したテキストファイルの各行から区切り文字(デリミタ)で区切られた任意のフィールドを出力します。ファイルを指定しない場合や、ファイルを指定する代わりに「-」を指定した場合は、標準入力を読み込みます。
バイト(-bオプション)/文字数(-cオプション)/フィールド(-fオプション)で切り出す範囲を数値で指定します。N番目を指定する場合は「N」、M番目~N番目を指定する場合は「M-N」、行頭~M番目を指定する場合は「-M」、M番目~行末を指定する場合は「M-」となります。
書式
$ cut [オプション] [ファイル名・・・]
オプション
-b 範囲 –bytes=範囲 | 範囲に指定したバイト数だけ表示する。タブとバックスペースは1バイトとして扱う |
-c 範囲 –characters=範囲 | 範囲に指定した文字数だけ表示する |
-f 範囲 –fields=範囲 | 範囲に指定したフィールド数だけ表示する(デフォルトはフィールドがタブで区切られている) |
-d 区切り文字 delimiter=区切り文字 | -fオプションを利用するときの区切り文字を指定する(デフォルトはタブを区切り文字と判断する) |
-s –only-delimited –output-delimiter=文字 | フィールドの区切りがない行を無視する |
ファイルの一部(フィールド)を指定して表示
抜き出すフィールド位置を指定して抜き出します。特定のフィールドを抜き出すためには、「-f」オプションを使用します。
$ cut -d "区切り" -f 抜き出すフィールド ファイル名
実行結果
/etc/passwdファイルの区切り:(コロン)で分割して7番目のフィールドを抜き出しています。
[sunarin@localhost work]$ head -n 2 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
[sunarin@localhost work]$ cut -d ":" -f 7 /etc/passwd
/bin/bash
/sbin/nologin
・
・
・
/bin/bash
[sunarin@localhost work]$
ファイルのフィールド(列)範囲指定して表示
抜き出すフィールドの範囲を指定して抜き出します。特定のフィールドを抜き出すためには、「-f」オプションを使用します。
$ cut -d "区切り" -f 開始フィールド - 終了フィールド ファイル名
実行結果
/etc/passwdファイルの区切り:(コロン)で分割して5番目から7番目のフィールドを抜き出しています。
[sunarin@localhost work]$ cut -d ":" -f 5-7 /etc/passwd
root:/root:/bin/bash
bin:/bin:/sbin/nologin
・
・
・
sunarin:/home/sunarin:/bin/bash
[sunarin@localhost work]$
ファイルの複数のフィールド(列)指定して表示
抜き出すフィールドを複数指定して抜き出します。特定のフィールドを抜き出すためには、「-f」オプションを使用します。また、抜き出したいフィールドを,(カンマ)で区切ります。
$ cut -d "区切り" -f フィールド1,フィールド2,・・ ファイル名
実行結果
/etc/passwdファイルの区切り:(コロン)で分割して1番目、5番目、7番目のフィールドを抜き出しています。
[sunarin@localhost work]$ cut -d ":" -f 1,5,7 /etc/passwd
root:root:/bin/bash
bin:bin:/sbin/nologin
・
・
・
[sunarin@localhost work]$
ファイルのフィールド(列)を開始位置から行末表示
抜き出すフィールドを開始位置から行末まで抜き出します。特定のフィールドを抜き出すためには、「-f」オプションを使用します。
$ cut -d "区切り" -f 開始フィールド- ファイル名
実行結果
/etc/passwdファイルの区切り:(コロン)で分割して3番目から行末までのフィールドを抜き出しています。
[sunarin@localhost work]$ cut -d ":" -f 3- /etc/passwd
0:0:root:/root:/bin/bash
1:1:bin:/bin:/sbin/nologin
・
・
・
[sunarin@localhost work]$