grep [OPTIONS] PATTERN [FILE]
  
  
   -c                       统计匹配到的行数
   
   -i                        匹配时不区分大小写
   
   -n                       显示匹配行所在行号
   
   -o                       只显示匹配到的字符串
   
   -v                       取反,反方向匹配,不匹配关键字的行
   
   -E                      开启扩展的正则表达式
   
   -A n                   显示匹配的所在的行及其后n行
   
   -B n                   显示匹配的所在的行及其前n行
   
   -C n                   显示匹配的所在的行及其前后各n行
  
  
   例:查看ifconfig ens33,并选择关键字进行匹配,然后显示匹配到多少行,如果显示2行,说明有2行的内容包括这个关键字。
  
  
   显示关键字所在的行号:-n
  
  
   取反,反方向匹配,不匹配关键字的行:-v
  
  
   .   :                 匹配任何单个字符(除NUL)
  
  
   *  :                  匹配其前的任何数目或没有的单个字符,例: . 表示任一字符, 则 .* 匹配任一字符的任意长度
  
  
   ^  :                 匹配紧接着的正则表达式,BRE中仅在正则表达式的开头有特殊的含义,ERE中在任何位置都有特殊含义
  
  
   $  :                 匹配前面的正则表达式,在字符串或者行结尾处。BRE中仅在正则表达式的结尾处有特殊的含义,ERE中在任何位置都有特殊含义
  
  
   []  :                 匹配方括号内的任一字符,其中可用连字符(-)指的连续字符的范围;^符号苦出现在方括号的第一个位置,则表示匹配不在列表中的任一字符,
  
  
   字符出现次数:
  
  
   *                  前面的字符出现任意次,包括0次
  
  
   \?                前面的字符出现0次或1次,\为转义符
  
  
   \+                前面的字符至少出现一次
  
  
   \{m\}            前面的字符出现m次,\为转义符
  
  
   \{m,\}           前面的字符至少出现m次,\为转义符
  
  
   \{m,n\}        前面的字符至少出现m次,至多n次,\为转义符
  
  
   sed语法:
  
  
   sed [OPTIONS] PATTERN [FILE]
  
  
   -e             允许多项编辑
  
  
   -i              直接修改
  
  
   -f              指定sed脚本文件
  
  
   -n             取消默认的输出
  
  
   p        打印(默认在屏幕上显示出来)建议和 -n 一起使用
  
  
   c        替换行
  
  
   i         添加  在指定行的上一行添加内容
  
  
   a        添加  在指定行的下一行添加内容
  
  
   d        删除
  
  
   n N    读取/添加  模式匹配到的行的下一行内容,在对其进行操作
  
  
   w       保存
  
  
   s        文本内容替换
  
  
   g        全部匹配
  
  
   &        调用前面匹配的内容
  
  
   例子:打印内容
  
  
   1.打印指定行内容
  
  
   打印某一行内容:sed -n 'np'
  
  
   打印指定的多行内容,第x行到第y行:sed -n 'x,yp'
  
  
   2.打印关键字所在行内容:sed -n '/关键字/ p' 文件
  
  
   打印以root开头的行
  
  
   3.打印奇数行及偶数行
  
  
   1~2p:以第一行为开始行,步数为2进行打印。
  
  
   2~2p:以第二行为开始行,步数为2进行打印。
  
  
   例子:删除内容
  
  
   1.删除指定行:sed -n 'nd' 文件
  
  
   2.通过关键字删除所在行
  
  
   删除包含inet的所在行
  
  
   3.删除第几行到第几行
  
  
   4.删除空行
  
  
   sed '/^$/d' 文件
  
  
   5.取反删除
  
  
   sed '/^$/ !d' 文件
  
  
   例子:修改内容
  
  
   sed -i '命令 ' 文件
  
  
   1.插入内容
  
  
   在文本第二行后插入hello
  
  
   sed -i '1a \ \' 文件
  
  
   2替换内容
  
  
   sed -i '原内容所在行c 新内容' 文件
  
  
   指定字符进行替换
  
  
   将文本中的s替换成x
  
  
   awk语法
  
  
   sed [OPTIONS]  ‘模式{操作}’ 文件
  
  
   FS :输入字段分隔符,默认为空白字符
  
  
   OFS:输出字段分隔符,默认为空白字符
  
  
   RS :输入记录分隔符,指定输入时的换行符,原换行符仍有效
  
  
   ORS :输出记录分隔符,输出时用指定符号代替换行符
  
  
   NF :字段数量,共有多少字段, $NF引用最后一列,$(NF-1)引用倒数第2列
  
  
   NR :行号,后可跟多个文件,第二个文件行号继续从第一个文件最后行号开始
  
  
   FNR :各文件分别计数, 行号,后跟一个文件和NR一样,跟多个文件,第二个文件行号从1开始
  
  
   FILENAME :当前文件名
  
  
   ARGC :命令行参数的个数
  
  
   ARGV :数组,保存的是命令行所给定的各参数,查看参数
  
  
   例子:打印内容
  
  
   awk '{print $n}'
  
  
   默认以空格为分隔符,打印第n个字段,效果与awk -F" " '{print $n}'相似。
  
  
   打印倒数第二个字段
  
  
   awk '{print $(NF-1)}'
  
  
   打印多列内容
  
  
   awk -F '{print $n,$m}'
  
  
   打印多列内容并指定分隔符
  
  
   awk -F '{print $n “?” $m}'(以?为分隔符)
  
  
   打印关键字所在行
  
  
   awk '/关键字/ {print}'
  
  
   利用关键字提取IP
  
  
   awk '{print $n,NR}'
  
  
   \t为制表符
  
  
   提取符合条件的字段
  
  
   取已用字段中占用比大于15%的字段
  
  
   df -h |awk -F" " '{print $5}' |awk -F"%" '$1>15 {print}'
  
  
   awk 'NR==n {print}'
  
  
   以某行某列确定IP的位置
  
  
   awk -F 'NR%2==0 {print}'
  
  
   awk -F 'NR%2==1 {print}'