您的位置:首页 > 运维架构 > Shell

shell脚本--cut命令与awk简单使用

2018-01-22 17:43 639 查看
awk用来处理文本和数据,功能很强大,如果是一些简单的操作,可以使用cut命令来实现

cut常用的参数时-d后面家分隔符,分隔符使用引号括起来;-f后面跟着要选择的字段(这个字段的分隔以前面指定的分隔符为准),列数最小值为1,表示第一列,如果要多列,可以用逗号分隔 ;-c参数后面跟着要选择的字符偏移,-b表示后面跟着要选择的字节偏移;

这些选项后面跟着的参数可以使用空格分隔,也可以不加空格;

同时可以使用start-end表示一个区间,解决使用逗号的烦恼。

比如这个实例:

ubuntu@ubuntu:~$ cat test.txt
aaaaa;bbbbb;ccccc
ddddddd;eeeeee
fffff;gggggggg!iii;jjjjjj;kkkk
ubuntu@ubuntu:~$ cut -f 2,3 -d ";" test.txt #注意分隔符使用引号括起来
bbbbb;ccccc
eeeeee
gggggggg!iii;jjjjjj
ubuntu@ubuntu:~$ #上一条命令的作用是选择以;分隔之后的第2和第3字段


  

使用-表示区间

ubuntu@ubuntu:~$ cat test.txt
aaaaa"bbbbb"ccccc
ddddddd"eeeeee
fffff"gggggggg!iii"jjjjjj"kkkk
ubuntu@ubuntu:~$ cut -f 1-2 -d '"' test.txt
aaaaa"bbbbb
ddddddd"eeeeee
fffff"gggggggg!iii
ubuntu@ubuntu:~$ cut -d '"' -c 1-3 test.txt
cut: an input delimiter may be specified only when operating on fields
Try 'cut --help' for more information.
ubuntu@ubuntu:~$


  注意:-d只能和-f一起配合使用,而-c和-b不能和-d一起使用,只能单独使用。

然后是awk

-F 后面加上分隔符 ,建议空格分开后,使用引号将分隔符括起来,不加-F时,默认是以空格分隔。$0表示整行数据,$1表示第1个字段

ubuntu@ubuntu:~$ cat test.txt
aaaaa"bbbbb"ccccc
ddddddd"eeeeee
fffff"gggggggg!iii"jjjjjj"kkkk
ubuntu@ubuntu:~$ cat test.txt | awk -F '"' '{print $1"=>"$2}'
aaaaa=>bbbbb
ddddddd=>eeeeee
fffff=>gggggggg!iii


  awk特别强大,这里提一点点,可以参考http://man.linuxde.net/awk
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: