テキストファイルの各行から指定したフィールドを取り出す(cut)

スポンサーリンク

環境

CentOS7.6(64bit)

概要

テキストファイルの各行から指定したフィールドを取り出します。

書式

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

オプション

-c 文字数
取り出す文字位置を指定します。

-d 区切り文字
フィールドの区切り文字(デリミタ)を指定します。

-f フィールド
取り出すフィールドを指定します。

サンプル

例1

hostsファイルで 各行から1~7文字目までを取り出します。

$ cut -c 1-7 /etc/hosts

127.0.0
::1
例2

passwdファイルで ”:” を区切り文字として5~6番目のフィールドを出力します。かつ、最初の5行を表示します。

# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
...

$ cut -d ":" -f 5-6 /etc/passwd | head -n 5

root:/root
bin:/bin
daemon:/sbin
adm:/var/adm
lp:/var/spool/lpd