Linux

【cut】テキストから一部を選択して表示する|Linuxコマンド基礎

cut

今回は、Linuxコマンドでテキストファイルから一部を選択して表示する方法(cutコマンド)について分かりやすくご説明いたします。

 

うちぱぱ
うちぱぱ
それでは始めましょう!

テキストファイルから一部を選択して表示する【cut】

 

書式

cut オプション [ファイル名 …]

オプション

-b 範囲 範囲に指定したバイト数だけ表示。タブとバックスペースは1バイトとして扱う
-c 範囲 範囲に指定した文字数だけ表示
-f 範囲 範囲に指定したフィールド数だけ表示。フィールドはデフォルトはタブで区切られている
-d 区切り文字 -f オプションを利用する時の区切り文字を指定。デフォルトはタブ
-s フィールドの区切りが無い行を無視

 

指定したテキストファイルから一部分を選択し、標準出力に出力します。ファイルを指定しない場合や、ファイルを指定するところに「-」を指定した場合は、標準入力からの入力を待ちます。出力する範囲は数値での入力になります。
複数の範囲を指定する場合は、M番目とN番目があるとして「M-N」はM番目からN番目を表示します。「-M」は1からM番目までとなります。「M-」はM番目から行末までを表示します。

コマンド実行例

テキストファイルの一部を指定して表示する

$ head -n 5 /etc/passwd
root:x:0:0:uchipapa blog,,03-1234-1234,03-5678-5678:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin           ⇒/etc/passwdの最初の5行を表示
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync

$ cut -d ":" -f 7 /etc/passwd | head -n 5
/bin/bash
/usr/sbin/nologin
/usr/sbin/nologin    ⇒":"を区切り文字として7番目を出力
/usr/sbin/nologin
/bin/sync

$ cut -d ":" -f 5-7 /etc/passwd | head -n 5
uchipapa blog,,03-1234-1234,03-5678-5678:/root:/bin/bash
daemon:/usr/sbin:/usr/sbin/nologin
bin:/bin:/usr/sbin/nologin     ⇒同様に5番目から7番目を出力
sys:/dev:/usr/sbin/nologin
sync:/bin:/bin/sync

$ cut -d ":" -f 5- /etc/passwd | head -n 5
uchipapa blog,,03-1234-1234,03-5678-5678:/root:/bin/bash
daemon:/usr/sbin:/usr/sbin/nologin
bin:/bin:/usr/sbin/nologin      ⇒5番目から行末までも同様の結果(7番目は最後のフィールド)
sys:/dev:/usr/sbin/nologin
sync:/bin:/bin/sync

$ cut -d ":" -f 5- /etc/passwd | head -n 5 | sed -e "s/:/\t/g"
uchipapa blog,,03-1234-1234,03-5678-5678        /root   /bin/bash
daemon  /usr/sbin       /usr/sbin/nologin
bin     /bin    /usr/sbin/nologin     ⇒":" がタブに変わって表示
sys     /dev    /usr/sbin/nologin
sync    /bin    /bin/sync

区切り文字やフィールド数を指定して表示する

↓ -dオプションで「:」を区切り文字、-fオプションで表示するフィールドを指定。
 連続したフィールドではない場合は「,」で区切って表示するフィールド数を指定
$ cut -d ":" -f 1,6 /etc/passwd
root:/root
daemon:/usr/sbin
bin:/bin
sys:/dev
sync:/bin

表示する文字数の範囲を指定して表示する

↓ -cオプションで表示する文字数範囲を指定。行頭から指定した範囲が表示可能
$ cut -c 1-5 /etc/passwd
root:
daemo
bin:x
sys:x
sync:

 

 

うちぱぱ
うちぱぱ
今回は以上となります!