linux cut命令
顾名思义,cut用于截取文本。处理的对象是 一行 文本。
用法:
cut -f 显示的列数 -d '分割符'
## -f后跟逗号 表示具体的哪一列 用-连接则表示范围 -f 1,3 表示截取第一行和第三行 -f 1-3表示截取1到3行
在文件/etc/passwd中,每行都是使用6个冒号隔开的7列文本,可以使用cut命令来提取出特定的信息。
比如我们需要打印出系统中的所有用户
[root@Centos8_test Desktop]# cat /etc/passwd |cut -f 1 -d ':'
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
operator
games
ftp
nobody
dbus
systemd-coredump
同时打印用户和用户的家目录 ( 对应passwd文本中的第一列和第六列 )
[root@Centos8_test Desktop]# cat /etc/passwd |cut -f 1,6 -d ':'
root:/root
bin:/bin
daemon:/sbin
adm:/var/adm
lp:/var/spool/lpd
sync:/sbin
shutdown:/sbin
halt:/sbin
mail:/var/spool/mail
operator:/root
games:/usr/games
ftp:/var/ftp
nobody:/
dbus:/
在没有分隔符的行的情况下,cut可以打印指定的字符。
cut -c 列数
继续以/etc/passwd为例,假设想要打印每行的1-3列字符、5-7列字符
[root@Centos8_test Desktop]# cat /etc/passwd | cut -c 1-3,5-7
roo:x:
binx:1
daeon:
admx:3
lp::4:
syn:x:
shudow
hal:x:
mai:x:
opeato
gams:x
ftpx:1
nobdy:
dbu:x:
sysemd
sysemd