泰山神 发表于 2018-8-27 08:35:02

shell及正则表达式

  shell 表达式
  -d file是否存在而且为目录
  -f file    文件是否存在,且为普通文件
  -w file    文件是否存在且可写
  -s file    文件是否存在且非空
  -n string    字符串长度非0
  string1=string2    字符串相等
  -eq   等于
  -gt      大于
  -lt       小于
  -efile       文件是否存在
  -r   file       文件是否存在且可读
  -x   file      文件是否存在且可执行
  -h   file      文件是否为链接文件
  -z   string   字符串长度为0
  string1!=string2   字符串不等
  -ge大于或等于
  -le    小于或等于
  -ne    不等于
  单引号
  echo '$HOME'
  $HOME
  echo "$HOME"
  /root
  echo "\$HOME"
  转义
  echo "abc `date +%D`"
  abc 12/07/16
  echo "abc $(date +%D)"
  abc 12/07/16
  正则表达式
  .    匹配任意单个字符
  *    匹配前一个字符出现0次或多次
  .*   匹配任意多个任意字符串
  []    匹配集合中任意单个字符
      匹配连续的字串范围
  ^    匹配字串开头
  $    匹配字串结尾
  [^]    匹配否定,对括号中的集合取反
  \       匹配转义后的字串
  \{n,m\}    匹配前一个字符重复n到m次
  \{n,\}    匹配前一个字符至少n次
  \{n\}    匹配前一个字符串重复n次
  \(\)       将\(与\)之间的内容存储在"保留空间",最大存储9个
  \n      同过\1至\9调用保留空间中的内容
  {n,m} 等同于\{n,m\}
  +            匹配前一个字符出现一次或多次
  ?            匹配前一个字符出现一次或0次
  |            逻辑或,匹配前或后字串
  ()            匹配正则集合
  eg:
  grep :..0: passwd
  grep 00* passwd
  grep ot passwd
  grep passwd
  grep ^root passwd
  grep bash$ passwd
  grep sbin/[^t] passwd
  grep '0\{1,2\}' passwd
  grep "\(root\)\(:\).*\2\1" passwd
  grep ^$ passwd
  grep -v ^$ passwd

页: [1]
查看完整版本: shell及正则表达式