sed 流编辑器


sed是一种流编编器,它是文本处理中非常中的工具,能够完美的配合正则表达式便用,按行逐行处理文件。
sed命令的基本格式如下:
sed [选项] [脚本命令] 文件名

选项:
-e 该选项会将其后跟的脚本命令添加到已有的命令中
-f 该选项会将其后文件中的脚本命令添加到已有的命令中
-n 取消默认的完整输出,只要需要的,需使用 p 命令来完成输出
-i 此选项会直接修改源文件,不加-i 源文件实际不会修改

命令:
d 删除行
p 打印行
s 用一个字符串替换另一个
g 在行内进行全局替换
w 将所选的行写入文件

示例:
1、sed -n '3p' test.txt 只输出第三行
2、sed -n '3,9p' test.txt 输出3-9行
3、sed -n '/hhh/,/omc/p' test.txt 显示包含"hhh"的行到包含"omc"的行之间的行
4、sed '3d' test.txt 删除第三行内容
5、sed '2,4d' test.txt 删除2-4行的内容
6、sed '2,$d' test.txt 删除2-最后一行的内容
7、sed 'd' test.txt 删除全部内容
--------------------------------------------------
sed s替换脚本命令
命令格式:
's/pattern/replacement/flags'
pattern 被替换的内容
replacement 替换后的内容
flags 标记 例如n,g,p,w等

示例:
sed 's/qian/hou/2' test.txt
使用数字 2 作为标记的结果就是,sed 编辑器只替换每行中第 2 次出现的匹配模式
sed 's/qian/hou/g' test.txt
要用新文本替换所有匹配的字符串,使用 g 标记