Linux sed命令
sed 命令可依照脚本的指令来处理、编辑文本文件。
主要用来自动编辑一个或多个文件、简化对文件的反复操作、编写转换程序等。
参考
语法
| sed [-hnV][-e<script>][-f<script文件>][文本文件] |
参数说明
-e<script>或--expression=<script>
以选项中指定的script来处理输入的文本文件。
-f<script文件>或--file=<script文件>
以选项中指定的script文件来处理输入的文本文件。
-h或--help
显示帮助。
-n或--quiet或--silent
仅显示script处理后的结果。
-V或--version
显示版本信息。
动作说明
- a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)
- c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行
- d :删除,因为是删除啊,所以 d 后面通常不接任何东东;
- i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
- p :打印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行
- s :取代,可以直接进行取代的工作,通常这个 s 的动作可以搭配正则表达式例如
1,20s/old/new/g
示例
简单用法
| sed -e 4a\123456 file.txt |
| |
| sed -e '2,5d' file.txt |
| sed -e '3,$d' file.txt |
| sed '2,5d' file.txt |
| sed '3,$d' file.txt |
| |
| sed -e '2a drink tea' file.txt |
| sed -e '2i drink tea' file.txt |
| |
| sed -e '2a Drink tea or ......\ |
| drink beer ?' file.txt |
| |
| |
| sed -e '2,5c No 2-5 number' file.txt |
| |
| sed -i '/123/c abc' file.txt |
| |
| sed -n '5,7p' file.txt |
| |
| sed -n '/123/p' file.txt |
| sed -n 's/test/trial/p' data5.txt |
| |
| sed '/123/d' file.txt |
| |
| sed 's/123/abc/' file.txt |
| |
| |
| sed -e 's/oo/kk/g' file.txt |
| |
| sed -i 's/oo/kk/g' file.txt |
| sed -i 's/oo/kk/g' ./file* |
| |
| sed -i '$a This is a test' file.txt |
| sed -e '4 a newline' testfile |
| |
| sed -e '4 a newline\nnewline2' testfile |
| |
| sed -e '4 a newline\nnewline2\n' testfile |
| |
| sed '4 a \\' |
| sed '4 a \\n' |
自动化
对sed查找结果进行判断,并执行对应操作
| results=$(sed -n '/apple/p' ./file.txt) |
| if [ -n "$results" ]; then |
| sed -i 's/apple/banana/g' ./file.txt |
| else |
| echo 'no apple!' |
| fi |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)