Lnux sed 命令
原创
©著作权归作者所有:来自51CTO博客作者wx63899b601ff16的原创作品,请联系作者获取转载授权,否则将追究法律责任
sed [选项] 'sed命令' 输入文件
sed常用选项
- -n不全部打印
- -f 执行sed文件
- -e执行多个sed编辑命令
sed定位文本命令
- x 指定行号x
- x,y 指定x到y的行号
- /pattern/ 查询包含模式的行
- /pattern/pattern/ 查询包含两个模式的行
- /pattern/,x 从pattern的匹配行到x之间的行
- x,/pattern/ 同上
- x,y! 不包含x到y的行
sed常用编辑命令
- p 打印匹配行
- = 打印文本行号
- a\ 定位行号后追加文本信息
- i\ 定位行号前追加文本信息
- d 删除定位行
- c\ 新文本替换定位文本
- w 将文本写入一个文件
- s 使用替换模式替换相应文本
示例:
sed -i 's/原字符串/新字符串/' test.txt # 匹配一次
sed -i 's/原字符串/新字符串/g' test.txt # 多次匹配
sed -i 's/^@//' test.txt # 去掉行首带@的首字符@
sed -i '/特定字符串/i 新行字符串' test.txt # 特定字符串行前插入新行
sed -i '/特定字符串/a 新行字符串' test.txt # 特定字符串行后插入新行
sed -i '/特定字符串/d' test.txt # 删除特定字符串
sed -n '3,6p' input.txt # 打印3到6行
sed -n -e '/abc/p' -e '/abc/=' input.txt # 打印匹配'abc'的内容和行号
sed '/file:/a\We append a new line' # 在匹配'file:'的内容后面加一行'We append a new line',如果想要添加多行用'\'隔开
#!/bin/sed -f # 通常将`sed -f`写入shell脚本,开头就是以前面的形式,标识sed命令的位置
参考自[Linux Shell 编程从初学到精通]
sed -i命令详解及入门攻略