sed 使用
用途
- 从log中提取有用内容
- 批量替换文字
使用指南
命令格式
格式1
1 | sed [-e] 'instruction' filename |
‘instruction’ 是 sed的指令,这种方式将指令写在命令行上,为避免和shell向冲突,要将一些特殊字符(空格、$、*)用单引号括起来。
只有命令行上给出多个指令时,才需要使用 -e 选项。例如:
1 | sed -e 's/ MA/, Massachusetts/' -e 's/ PA/,Pennsylvania/' targetfile |
格式2
1 | sed -f scriptfile filename |
脚本文件示例:
1 2 | s/CA 95470/----/ s/MA/++ Massachusetts ++/ |
指令的格式
1 | /正则表达式/执行的动作/ |
类似ed编辑器,大部分动作由单个字母表示。
处理过程
每次从输入文件读取“符合搜索条件的一行”,生成该行备份,并对备份行进行sed操作。
- 整个过程不会对输入文件产生改动。
使用技巧
阻止输入行自动显示
-n 选项可以阻止输入行自动显示。设置之后,每个要生成输出的指令,都必须包含打印命令 p 。
例如:
1 | sed -n -e 's/MA/Massachusetts/p' targetfile |
打印符合条件的行
1 | sed -n -e '/正则表达式/p' targetfile |