linux 的 sed 命令

sed 命令, stream editor 流式编辑器

用于对文本的查找 / 替换 / 删除 / 新增

用法: sed [options]... <command> <file>

默认 sed 使用 p 打印文本文件时, 会打印所有内容
-n 表示只输出匹配的行, 一般 -np 组合使用, 表示只打印匹配行

# 默认会输出所有行
sed '3p' book.txt

# 使用 -n 只打印匹配行
# 打印第 3 行
sed -n '3p' book.txt

sed -n

i 表示在匹配行前面插入一行

# -i 表示直接修改原文件
sed -i '4i 你好鸭' dog.txt

sed -i 4i

a 表示在匹配行后面追加一行

# -i 表示直接修改原文件
sed -i '4a 你好鸭2' dog.txt

sed -i 4a

d 表示删除匹配行

# -i 表示直接修改原文件
sed -i '4,5d' dog.txt

sed -i 4,5d
s 表示搜索字符串, 替换为指定内容
这个比较常用

# sed s/old_str/new_str/pg dog.txt
# 把 44444 替换为 55555
# 其中 s 表示搜索字符串
# g 表示替换所有 (默认是只替换一次)

# 输出到屏幕, 不修改原文件
 sed -n s/44444/55555/pg dog.txt   
# 当确保无误后, 再实际修改原文件, 修改前记得 cp 备份一下原文件
 sed -i s/44444/55555/g dog.txt   
 # -r 表示正则表达式, 可以使用 \1 这种向前引用
 # 所有数字开头的行, 数字都替换为 原数字@@ 的格式
 sed -nr 's/(^[0-9]+)/\1@@/pg' dog.txt   

sed s
sed 正则替换
总结:
使用 sed 一般用于对文件进行查找替换关键字
先使用 -n 搭配 p 的参数, 预览替换结果
在使用 -i 实际替换文件, 操作前记得备份原文件

# 预览替换结果
sed -n 's/我/你/pg' dog.txt
# 实际替换
sed -i 's/你/我/g' dog.txt
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值