cut选取命令,选取命令的作用的是将一段数据进行分析后取出想要的部分,选取新通常的针对行来分析的,并不是针对整篇信息分析的。
cut的处理单位是行,即从一行数据中取出想要的部分。
cut -d ‘分隔符’ -f 字符位置(以分隔符分割的第几段字符内容)
cut -c 字符范围
取出PATH中以:符号为分隔符的第5段字符:
1
2
3
4
|
[root@localhost ~]
# echo $PATH
/usr/lib64/qt-3
.3
/bin
:
/usr/local/bin
:
/bin
:
/usr/bin
:
/usr/local/sbin
:
/usr/sbin
:
/sbin
:
/home/whx/trafodion-build-tools/apache-maven-3
.3.3
/bin
:
/home/whx/bin
[root@localhost ~]
# echo $PATH | cut -d ':'-f 5
/usr/local/sbin
|
取出PATH中以:符号为分隔符号的第3段和第5段字符:
1
2
|
[root@localhost ~]
# echo $PATH | cut -d ':'-f 3,5
/bin
:
/usr/local/sbin
|
取出export中每行数据的第12个字符之后的内容:
1
2
3
4
5
6
|
[root@localhost ~]
# export | cut -c 12-
CVS_RSH=
"ssh"
G_BROKEN_FILENAMES=
"1"
HISTCONTROL=
"ignoredups"
HISTSIZE=
"1000"
…
|
取出export中每行数据的第12到20个字符:
1
2
3
4
5
6
7
8
9
10
11
12
|
[root@localhost ~]
# export | cut -c 12-20
CVS_RSH="
G_BROKEN_
HISTCONTR
HISTSIZE=
HOME="
/ro
HOSTNAME=
JAVA_HOME
LANG="en_
LESSOPEN=
LOGNAME="
…
|
当存在多个空格时,以空格为分隔符来选取字符就要特别注意:
例子:
1
2
3
4
5
|
[root@localhost ~]
# last
whx pts
/0
192.168.21.1 Wed Aug 23 01:18 still logged
in
whx tty1 :0 Wed Aug 23 01:18 still logged
in
reboot system boot 2.6.32-696.el6.x WedAug 23 01:17 - 03:03 (01:45)
whx pts
/0
192.168.21.1 Mon Aug 21 19:43 - 00:37 (04:54)
|
使用cut从last中取出登陆的用户名:
1
2
3
4
|
[root@localhost ~]
# last |cut -d ' ' -f 1
whx
whx
reboot
|
但是如果想利用last | cut -d ‘ ‘ -f 1,3,4,5,6,7来取出用户名,ip 和时间是取不到想要的结果的(因为last中每组信息之间可能存在多个空格):
1
2
3
4
|
[root@localhost ~]
# last | cut -d ' ' -f 1,3,4,5,6,7
whx pts
/0
whx tty1
reboot system boot 2.6.32-696.el6.x
|
本文转自 天黑顺路 51CTO博客,原文链接:http://blog.51cto.com/mjal01/1958753,如需转载请自行联系原作者