一、字符截取命令之cut命令
1、字符截取命令有哪些?
grep cut printf(严格来说不算) awk sed 命令
2、grep 是在文件当中提取符合条件的行
cut 是在文件当中提取符合条件的列
3、cut命令:
[root@localhost ~]# cut 【选项】文件名
选项:
-f 列号 :提取第几列
-d 分隔符:按照指定分隔符分隔列
注意:测试文档如下
[root@localhost sh]# vim student.txt
ID Name gender Mark
1 Liming M 86
2 Sc M 90
3 Gao M 83
~
注意 空白不是空格,而是制表符
[root@localhost sh]# cut -f 2 student.txt
Name
Liming
Sc
Gao
[root@localhost sh]# cut -f 2,3 student.txt
Name gender
Liming M
Sc M
Gao M
[root@localhost sh]#
示例2、提取/etc/passwd 文件中内容,用于练习-d选项
Gao M
[root@localhost sh]# vim /etc/passwd
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
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
usbmuxd:x:113:113:usbmuxd user:/:/sbin/nologin
rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin
rtkit:x:499:499:RealtimeKit:/proc:/sbin/nologin
avahi-autoipd:x:170:170:Avahi IPv4LL Stack:/var/lib/avahi-autoipd:/sbin/nologin
vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin
abrt:x:173:173::/etc/abrt:/sbin/nologin
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
haldaemon:x:68:68:HAL daemon:/:/sbin/nologin
[root@localhost sh]# cut -d ":" -f 1,3 /etc/passwd
root:0
bin:1
daemon:2
adm:3
lp:4
sync:5
shutdown:6
halt:7
mail:8
uucp:10
operator:11
games:12
gopher:13
ftp:14
nobody:99
dbus:81
usbmuxd:113
rpc:32
rtkit:499
avahi-autoipd:170
vcsa:69
abrt:173
rpcuser:29
nfsnobody:65534
haldaemon:68
ntp:38
apache:48
saslauth:498
postfix:89
gdm:42
pulse:497
sshd:74
tcpdump:72
zhouxueli:500
sc:501
bimm:502
cangls:503
st:504
lamp:505
[root@localhost sh]#
4、字符截取命令在编程中有什么作用呢?
如果想要批量添加一定量的用户,但是发现普通用户不合要求,想删除普通用户,
所以可以根据截取命令,把用户名提取出来,之后根据用户名删除,
所以利用cut命令将用户名批量提取,根据root取反,提取普通用户,
编写脚本,利用循环,把这些用户删除
等等类似这种情形可用
5、cut命令的局限[root@localhost ~]# df -h | cut -d " " -f 1,3
[root@localhost sh]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
18G 7.8G 8.5G 48% /
tmpfs 931M 76K 931M 1% /dev/shm
/dev/sda1 477M 41M 411M 9% /boot
/dev/sdb1 2.0G 3.1M 1.9G 1% /disk1
/dev/sdb5 2.0G 3.1M 1.9G 1% /disk5
/dev/sr0 1.1G 1.1G 0 100% /media/Ubuntu 14.04