【shell】那些年学过的正则(1)

187 阅读2分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

正则表达式简介

  • select工具
  • 通配符
  • grep 命令

select

select 是bash 自带的字符菜单工具

  • 不需要 echo 命令就可以自动列出菜单
  • 不需要 read 命令就可以读取变量的值
  • 不需要赋值命令就可以自动赋值给变量 基础语法
PS3="select的提示符"
select variable in list
do
    commands
done

通配符

(globbing)用来匹配文件名

  • 最常用的通配符包括:?、*、[]、{}、^等,通配符与正则表达式中的元字符意义不完全相同

  • \* 匹配 0 个或者多个字符

  • 匹配1个字符

  • […] 匹配范围内任意1个字符,多选一 [az]、[a-z]、[a\-z](a - z转义了-)

  • [^…] 匹配范围外任意1个字符,表示取反 :[^abc]表示非abc的任意一个

  • ^不在中括号里面表示开头

  • {} 组合匹配,touch a{1,3,5} touch b{1..10}

grep

(global search regular expression and printing)

用途:使用正则表达式搜索文本,并把匹配的行打印出来

格式grep [选项]... 模式 目标文件(或者cat 管道传给grep)

  • -v: 反转查找,输出与模式不相符的行

  • -An:同时显示符合条件行的下面n行 (匹配的行后面几行)

  • -Bn:同时显示符合条件行的上面n

  • -Cn:同时显示符合条件行的上面和下面n

  • -E: 支持扩展正则表达式( 正则有基本正则和扩展正则,兼容性好点 )

      grep默认只支持基本正则,若要支持基本正则和扩展正则要用-E选项,扩展正则包括了基本正则
    
  • -o: 仅显示匹配模式的字符串

  • -f: 根据文件内容进行匹配