正则表达式与文本搜索
元字符(常用)
- . 匹配除换行符外的任意单个字符
- 匹配任意一个跟在它前面的字符
- 匹配方括号中的字符类中的任意一个
- ^ 匹配开头
- $ 匹配结尾
- \ 转义后面的特殊字符
扩展元字符
- 匹配前面的正则表达式至少出现一次
- ? 匹配前面的正则表达式出现零次或一次
- | 匹配它前面或后面的正则表达式
行编辑器 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 将模式空间的内容写入到文件