高级文本处理命令
cut
cut是一个选取命令,它就是将一段数据经过分析,取出我们想要的。一般来说,选取信息通常是针对“行”来进行分析的,并不是整篇信息分析的
cut语法
cut <选项> 文件
选项与参数:
-d:后面接分隔字符。与 -f 一起使用
-f:依据 -d 的分隔字符将一段信息分割成为数段,用 -f 取出第几段的意思
-c:以字符 (characters) 的单位取出固定字符区间
-b:以字节为单位进行分割
例子1:
首先看PATH变量: [root@localhost ~]# echo $PATH /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
将PATH变量取出,找出第五个路径 [root@localhost ~]# echo $PATH | cut -d ':' -f 5 /usr/sbin
将PATH变量取出,找出第三和第五个路径 [root@localhost ~]# echo $PATH | cut -d ':' -f 3,5 /sbin:/usr/sbin
将PATH变量取出,找出第三到最后一个路径 [root@localhost ~]# echo $PATH | cut -d ':' -f 3- /sbin:/bin:/usr/sbin:/usr/bin:/root/bin
将PATH变量取出,找出第一到第三,还有第五个路径 [root@localhost ~]# echo $PATH | cut -d ':' -f 1-3,5 /usr/local/sbin:/usr/local/bin:/sbin:/usr/sbin |
例子2:
先准备已空格分开的这么段数据: huangbo 18 jiangxi xuzheng 22 hunan wangbaoqiang 44 liujiayao
获取中间的年龄: [root@localhost ~]# cut -f 2 -d ' ' student.txt 18 22 44
获取第二个字符到第三个字符之间的字符: [root@localhost ~]# cut -c 2-3 student.txt ua uz an
获取第二个字节和第五个字节: [root@hadoop ~]# cut -b 2,5 student.txt ug ue ab |