Linux命令之 sed 详解

本文详细介绍了sed命令在处理文本文件时的各种功能,如行的增删、替换、搜索、批量操作等,包括在特定行前后添加内容、删除指定范围的行、全局替换以及清理空行和去除前缀空白。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文本替换编辑

选项说明
-e,–expression=
# 在testfile.txt文件的第四行后添加一行,并将结果输出到标准输出
sed -e 4a\newLine tesfile
# 以行为单位新增/删除(2,5d:d是删除,删除2-5行的数据)
nl testfile.txt | sed '2,5d' 
# 只删除第二行
nl testfile.txt | sed '2d'
# 从第三行删除的最后一行
nl testfile.txt | sed '3,$d'
# 在第二行后追加newLine
nl testfile.txt | sed '2a newLine'
# 在第二行前追加newLine
nl testfile.txt | sed '2i newLine'
# 追加多行newLine
nl testfile.txt | sed '2a newLine\newLine'
# 将第2-5行的内容取代为newLine
nl testfile.txt | sed '2-5c newLine'
# 仅列出testfile.txt文件内的5-7行
nl testfile.txt | sed -n '5,7p'
# 显示500,600,981,888,666行的数据
sed -n "500p;600p;981p;888p;666p" phone.txt
# 数据的搜索并显示
nl testfile.txt | sed -n '/oo/p'
# 数据的搜索并删除
nl testfile.txt | sed '/00/d'
# 数据的搜索并执行命令
nl testfile.txt | sed -n '/oo/{s/oo/kk/;p;q}' # 最后的q是退出
# 数据的查找与替换
sed 's/要被取代的字符串/新的字符串/g'
# 将testfile.txt文件中每行第一次出现的oo用字符串kk替换,然后将该文件内容输出到标准输出
sed -e 's/oo/kk/' testfile.txt
# g标识符表示全局查找替换,使sed对文件中所有符合的字符串都被替换,修改后内容会到标准输出,不会修改原文件
sed -e 's/oo/kk/g' testfile.txt
# 选项i使sed修改文件
sed -i 's/oo/kk/g' testfile.txt
# 批量操作当前目录下以test开头的文件
sed -i 's/oo/kk/g' ./test*
# 替换空行
sed -e '/^/s*$/d' test02.txt
sed -e '/^$/d' test02.txt
# 去掉每行的前缀空格和制表符
sed -e 's/^[ \t]*//g' test01.txt
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

OnePandas

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值