Linux常用正则规则及命令行通配符

  一、Linux命令行通配符

  *    0到多个任意字符
  ?    单个任意字符
  ;    不同命令分隔符
  #    配置文件注释
  |    管道
  ~    用户家目录
  -    上一次的目录
  $    表示变量的符号
  /    路径分隔符
  >    输出重定向,覆盖
  >>    追加输出重定向
  <       输入重定向
  <<    追加输入重定向
  '     不解析变量
  "    解析变量,与不加引号作用相同
  ``      等价于$(),执行命令返回结果
  {}      花括号内可以是命令区块或内容序列 命令区块 cp a.txt{,.bak} 内容序列 touch file{1..5}.txt
  !    取反
  &&   前一个命令成功执行后面的
  ||      前一个命令失败执行后面的
  ..     上一级目录
  .      当前目录

 

 

  Linux常用正则规则

  ^    匹配开头
  $    匹配结尾
  \     转义
  .    单个任意字符
  *    匹配0~n次
  []    匹配范围内任意单个字符
  [^]    不匹配范围内的字符
  \{n,m\}   匹配n,m次
  \{n,\}         最少匹配n次
  \{n\}          匹配n次
  \{,m\}        最多匹配m次

  扩展的正则规则
  +              匹配一到多次
  ?            匹配0到1次
  |               匹配左右任意一边的字符
  ()             分组匹配
  \b            单词边界

 

  练习:

  1)从ifconfig命令的结果中获取IP地址

ifconfig  eth0|sed  -nr  's/^.*dr:(.*) B.*$/\1/gp'

 

  2)将/etc/passwd文件的第一列和最后一列位置互换

sed -nr 's/([^:]+)(:.*:)(\/.*$)/\3\2\1/gp' /etc/passwd

 

posted @ 2018-01-26 16:43  魅力宁波  阅读(1479)  评论(0)    收藏  举报