sed基本使用及示例

介绍
sed是一种非交互式流编辑器,可通过多种转换修改流经它的文本。本身不改变原文件,只改变流经其的文本,并打印到标准输出。如需将修改的内容保存在原文件上,则需加 -i选项。sed可做的动作主要包括删除、查找替换、添加插入、读取等等。通常用于大文本的处理,处理时以行为单位。
选项
sed使用命令为 sed -options ‘command’.
其主要选项(options)及其作用为:

-i :直接修改原文件
-e: 多条件编辑
-h: 帮助信息
-n: 不输出不匹配的行
-f: 指定sed脚本

命令
主要命令(command)有:

a: 在匹配行后加入文本
c:字符转换
d:删除行
D:删除第一行
i: 在匹配行前插入文本
y:转换文本
p:打印匹配的行
P:打印匹配的第一行
q:退出sed
r:从外部文件中读取文本
w:追加写文件
s/old/new:用new替换old(正则)
=:打印当前行号

使用
sed的使用通常结合正则表达式

  1. 删除
sed 'nd'   file:删除第n行
sed 'm,n'  file:删除第m至n行
sed 'n,$d' file:删除第n到最后一行
sed 'n!d' file:只保留第n行
sed '/a/d' file:删除所有包含a的行
sed '/^$/d' file:删除空行
  1. 查找替换
sed 's/old/new/' file:将每行第一个old替换成new(默认为第一个)
sed 's/old/new/n' file:将每行前n个old替换成new
sed 's/old/new/g' file:所有old替换成new
  1. 字符转换
sed 'y/old/new' file:将字符o,l,d分别转换为n,e,w。old及new字符数需一致
  1. 文本插入
sed 'n i insert' file:将insert插入第n行之前
sed 'n a insert' file:将insert插入第n行之后
sed '/old/i\insert' file:在匹配old的行前插入insert
sed '/old/a\insert' file:在匹配old的行后插入insert
  1. 读取文本
sed 'r file' file1:将file中读到的内容放入file1文本中
sed '/^$/r file' file1:将file中读到的内容放入file1的空行之后
sed '/old/r file' file1:将file中读到的内容放入匹配到old字符的行之后
  1. 打印
    需加-n选项,只打印处理的行
sed -n 'np'  fiel:打印第n行
sed -n 's/old/new/p' file:打印old替换成new的行
  1. 文件写入
sed 'm,n w output' file:将第m至n行的内容写入文件output中。(output文件将会被覆盖)
  1. 脚本调用
    当sed执行步骤比较多的时候,可以使用。
sed -f sed.rule file:sed.rule为sed脚本,执行sed脚本并将执行得出的内容输出到file

以上是sed的基本使用,实际工作中对sed的使用可能更为复杂,通常需要结合复杂的正则表达式来进行转换,所以学好正则也是很有必要的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值