shell中的通配符(grep、cut、sort等)
一、grep工具
grep是行过滤工具;用于根据关键字进行过滤
语法: grep [ 选项 ] ‘关键字’ 文件名
1、颜色显示: --color=auto
grep --color=auto 'root' passwd alias grep='grep --color=auto'
全局修改,将输入的grep后面的内容全部改为红色或高亮
vim /etc/bashrc alias grep='grep --color=auto'
source /etc/bashrc 保存全局变量,其他用户一并同root一样
过滤包含root的行
grep 'root' passwd 打印包含root的行
grep -n 'root' passwd 打印包含root的行,并注明行号
grep -ni 'root' passwd 打印包含root 的行,忽略大小写
grep '^root' passwd 打印以root开头的行
grep 'bash$' passwd 打印以bash结尾的行
grep -niv 'root' passwd 打印不以root开头的行(反选:v)
grep -nB 3 '^ftp' passwd 打印包含ftp关键字的前三行(包含搜索行)
grep -nA 3 'ftp' passwd 打印包含ftp关键字的后三行(包含搜索行)
grep -nC 3 'ftp' passwd 打印包含上三行和下三行的所有
grep -w 'hello' passwd 打印包含hello的行
grep -o 'hello' passwd 只打印关键字
常见选项:
OPTIONS:
-i : 不区分大小写
-v :查找不包含指定内容的行,反向选择
-w :按单词搜索
-o : 打印匹配关键字
-c : 统计匹配到的行数
-n : 显示行号
-r : 逐层遍历目录查找
-A:显示匹配行挤后面多少行
-B:显示匹配行及前面多少行
-C:显示匹配行前后多少行
-l:只列出匹配的文件名
-L:列出不匹配的文件名
-e:使用正则匹配
-E:使用扩展正则匹配
^key:以关键字开头
key$:以关键字结尾
^$:匹配空行
--color=auto:可以将找到的关键字部分加上颜色的显示
二、cut工具
cut是列截取工具,用于列的截取
语法:cut 选项 文件名
常见选项:
-c:以字符为单位进行分割,截取
-d: 自定义分割符,默认为制表符 \t
-f:与 -d 一起使用,指定截取那个区域
截取以冒号 : 为分隔符 打印第一列和第七列 ,取前五行
cut -d: -f1,7 passwd |head -5
取第一列所有
cut -d: -f1 passwd
截取第一到五个字符
截取从第十个字符开始
查看系统运行级别
runlevel cat /etc/inittab
三、sort工具
sort工具用于排序,他讲文件的每一行作为一个单位,从首字符向后,依次按ASCII码进行比较,最后将他们按升序输出。
语法和选项:
-u:去除重复行
-r:降序排列,默认是升序
-o:将排序结果输出到文件中,类似重定向符号。
-n:以数字排序,默认是按字符排序
-t:分隔符
-k:第N列
-b:忽略前导空格。
-R:随机排序,每次运行的结果均不同
四、uniq工具
uniq用于去除连续的重复行
常见选项:
-i:忽略大小写
-c:统计重复行次数
-d: 只显示重复行