正则表达式与文本搜索

元字符(常用)

  • . 匹配除换行符外的任意单个字符
    • 匹配任意一个跟在它前面的字符
  • 匹配方括号中的字符类中的任意一个
  • ^ 匹配开头
  • $ 匹配结尾
  • \ 转义后面的特殊字符

扩展元字符

    • 匹配前面的正则表达式至少出现一次
  • ? 匹配前面的正则表达式出现零次或一次
  • | 匹配它前面或后面的正则表达式

行编辑器 sed 和 awk

区别
Vim sed 和awk
交互式 非交互式
文件操作模式 行操作模式
sed:一般用于对文本内容做替换
awk:一般用于对文本内容做进行统计、按需要的格式进行输出

sed

sed是一种流编辑器,处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,除非你使用重定向存储输出。

命令

sed 的替换命令 s
• sed ’s/old/new/’ filename
• sed -e ’s/old/new/’ -e ’s/old/new/’ filename …
• sed -i ’s/old/new/’ ’s/old/new/’ filename …
带正则表达式的替换命令 s
• sed ’s/正则表达式/new/’ filename
• sed -r ’s/扩展正则表达式/new/’ filename
全局替换
• s/old/new/g
g 为全局替换,用于替换所有出现的次数
/ 如果和正则匹配的内容冲突可以使用其他符号,如:

• s@old@new@g
标志位
s/old/new/标志位
• 数字,第几次出现才进行替换
• g,每次出现都进行替换
• p 打印模式空间的内容
• sed -n ‘script’ filename 阻止默认输出
• w file 将模式空间的内容写入到文件