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: 自定义分割符,默认为制表符 

  -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: 只显示重复行

 

  

原文地址:https://www.cnblogs.com/security-guard/p/12264712.html