Linux sed 命令详解(linux sed -c)
gudong366 2025-05-06 12:38 9 浏览
sed命令整体可以干嘛
总体而言,sed命令可以对文本进行查找、删除、插入、替换等操作。它跟vim或者vi命令最大的去区别是,后者只能通过人工交互的方式,对文本进行处理。而很多时候,我们希望脚本自动化的进行文本处理,那么sed无疑是我们的好帮手
命令简介
sed OPTIONS [SCRIPT] [INPUTFILE...]
- OPTIONS 用于指定对处理后的文本的一些输出行为,比如-i,-n,后续会详解
- SCRIPT 定义实际的处理行为,比如想要查询什么、删除什么、插入什么
- INPUTFILE 这是具体要被处理的文本。文本还可以来自于管道符,于是命令格式形如下 echo "Welcome To The Geek Stuff" | sed 's/\(\b[A-Z]\)/\(\1\)/g'样例文本说明 为了方便对命令处理效果的说明,首先我们准备一个文本sed_learn.txt,其内容如下
unix is great os. unix is opensource. unix is free os.
learn operating system.
unix linux which one you choose.
查找
在script中,以p做为查找输出命令,意即print
查找指定行数的内容并打印
打印1到2行的文本
sed -n '1,2 p' sed_learn.txt
输出结果
unix is great os. unix is opensource. unix is free os.
learn operating system.
上述搜索打印使用到了参数-n,详细讲解
查找指定关键字所在的行,并打印
打印包含unix关键字的行sed -n '/unix/p' sed_learn.txt,输出结果如下
unix is great os. unix is opensource. unix is free os.
unix linux which one you choose.
其中两斜杠/unix/ 中间,除了可以指定关键字,还可以指定正则表达式
插入
插入空行
使用G表示插入空行
- 在每行后面插入空行 sed 'G' sed_learn.txt 结果如下 unix is great os. unix is opensource. unix is free os. learn operating system. unix linux which one you choose.
- 在每行后插入两个空行 sed 'G;G' sed_learn.txt 结果如下为 unix is great os. unix is opensource. unix is free os.
learn operating system.
unix linux which one you choose.
```
在指定位置插入内容
- 在包含指定关键字的行后面插入新行 :sed '/love/G' sed_learn.txt表示在包含love的行后面插入新行
- 在指定位置插入空格:sed 's/^/ /' a.txt 表示在所有行前,插入5个空格,^表示行首删除 在script中指定d命令,表示对文本进行相关的删除动作
删除指定行
比如sed '1d' sed_learn.txt表示删除第一行
删除指定范围的行
sed '1,2d' sed_learn.txt //表示删除1到2行
sed '1,$d' sed_learn.txt //表示删除1到最后一行
删除最后一行
sed '$d' sed_learn.txt
搜索指定的位置的行
sed '/unix/d' sed_learn.txt //表示删除所有包含unix的行
删除所有空行
sed '/^$/d' sed_learn.txt
替换
替换命令的脚本格式一般为sed line_number1,line_number2 '
s/search_keyword_or_regular_express/string_for_replace/search_range_for_one_line'
- search_keyword_or_regular_express 指定在一行中匹配的关键字或正则表达式
- string_for_replace:指定匹配到后,替换的字符。
- search_range_for_one_line:指定在一行中,搜索匹配的范围。默认只对一行中第一次匹配到的内容进行替换
- line_number1,line_number2 前面都是对具体某一行的匹配替换行为进行指定,这里指定具体要对哪些行进行匹配替换
- 例如:sed '1,3 s/unix/linux/' sed_learn.txt 表示,将1到3行中的第一次匹配到unix的地方,替换成linux
- 例如:sed '1,3 s/unix/linux/g' sed_learn.txt 表示,将1到3行中的所有匹配到unix的地方,替换成linux
给文本编号
- 给所有行编号: sed = sed_learn.txt | sed 'N;s/\n/\t/' , 其中等号=是给文本每行前面插入一个带数字的行,由于换行了,所以管道符后面将换行符\n变成了制表符\t。 当然我们可以直接换成空格sed = sed_learn.txt | sed 'N;s/\n/ /
- 给非空行编号:sed '/./=' a.txt | sed '/./N; s/\n/ /',通过/./匹配到所有非空的行,然后使用=编号。最后,再将换行符\n替换成空格
多命令模式
在script中,可以指定多组命令,用分号隔开就行
比如sed 'G' sed_learn.txt,表示插入一个空行 而sed 'G;G' sed_learn.txt 表示插入两个空行
一些option参数
就地修改-i
前面讲的所有查询、删除、替换,都是直接将处理结果输出到终端,为了保留这些处理结果,我们可以使用重定向到某个文件进行保存,比如sed '/unix/d' sed_learn.txt > result.txt。但我们也可以通过指定-i 参数,直接将修改后的结果,更新到原文件,这里的-i代表in place即为就地的意思
例如sed -i '1,$ s/unix/linux/g' sed_learn.txt 会将sed_learn.txt的内容,直接更新为如下
linux is great os. linux is opensource. linux is free os.
learn operating system.
linux linux which one you choose.
只输出匹配到的文本-n
默认情况下,p指令会将所有文本打印出来,并将匹配到文本进行重复打印。 比如执行sed '1,2 p' sed_learn.txt, 其结果如下,
unix is great os. unix is opensource. unix is free os.
unix is great os. unix is opensource. unix is free os.
learn operating system.
learn operating system.
unix linux which one you choose.
可以看到,它不光把第三行的内容也输出了,还把1,2行进行了重复打印。而-n则可以只打印匹配到的内容,且不重复
总结
基本上,sed命令,都是先定位到某行,或某行的某个位置,然后进行相应的处理。除此之外,还需要指定具体要对那些行进行前述处理
参考资料
https://www.geeksforgeeks.org/sed-command-in-linux-unix-with-examples/
https://www.geeksforgeeks.org/sed-command-linux-set-2/
欢迎关注我的个人公众号"西北偏北UP",记录代码人生,行业思考,科技评论
相关推荐
- U盘文件被删怎么简单恢复(u盘里的文件被误删了怎么找回)
-
现在这个社会不是靠关系靠路子,主要还是靠实力。刘强在机关工作,人长得帅气,工作能力又强。唯独一样不好,脾气太大,动不动就发火,因为小事常和同事发生口角。一次他火大的差点把办公桌给掀翻了,领导见他野蛮的...
- 不小心删除了一些文件?9 个最佳免费硬盘恢复软件
-
恢复您曾经无意或意外删除的所有文件和数据。您是否曾经错误地删除了一个对您的工作至关重要并导致您丢失所有进度的文件?我们为您提供了一些最好的免费硬盘恢复软件,以帮助您恢复意外删除的文件,以解决您的文件删...
- Studio 中文版:数据救援神器,误删 / 分区损坏 / RAID 恢复一键找回
-
Studio中文版:数据救援神器,误删/分区损坏/RAID恢复一键找回当文件意外删除、分区损坏,或RAID阵列崩溃时,一款可靠的数据恢复工具往往能挽回关键损失。R-Studio中文版...
- 你值得拥有的11款Linux数据恢复工具
-
如果你使用的是Linux操作系统,那么你一定想知道一旦硬盘崩溃的话又该如何保存和恢复数据。其实,现在有很多Linux数据恢复工具可以让我们摆脱数据安全的困扰。小编已经为各位准备好了一些最好的Linux...
- 误删文件内容怎么恢复(误删文件内容怎么恢复回来)
-
在日常使用电脑的过程中,误删文件的情况时有发生。无论是由于操作失误还是病毒攻击,误删文件都会给我们带来不小的困扰。幸运的是,随着技术的发展,误删文件恢复已不再是难题。本文将介绍几款国内外知名的误删...
- u盘如何恢复删除的文件?推荐5款u盘数据恢复软件!
-
在日常生活与工作中,U盘作为便捷的数据存储载体,频繁用于传输和保存各类重要文件。然而,误删文件的情况却时有发生,无论是珍贵的照片、重要的工作文档,还是精心制作的视频,一旦删除,都可能带来不小的麻烦。...
- 怎么恢复删除的数据?5种有效的数据恢复方法汇总!
-
在数字化办公与生活的时代,电脑里的每一份数据都承载着重要信息。然而,一个误操作就可能导致数据被删除,无论是尚未保存的重要文档,还是珍藏多年的照片,都可能瞬间“消失”。但其实,数据删除并不意味着永久丢...
- u盘删除文件怎么找回?5个数据恢复工具汇总,助你巧妙恢复数据!
-
在日常使用U盘的过程中,误删文件的情况时有发生,重要的工作文档、珍贵的照片视频一旦消失,难免让人焦急万分。别担心,只要选对数据恢复工具,被删除的数据仍有找回的可能。下面就为你汇总5款实用的数据...
- Linux下恢复误删文件:思路+实践(linux删除如何恢复)
-
周五篮球群里有人问误删文件了怎么恢复,得知是ext4文件系统之后我推荐了ext4magic这个工具,然后又有人提到了xfs的话怎么办,正好前几天看到DaveChinner在邮件列表里提到了这个问题,...
- 苹果放大招!不用虚拟机了,Mac直接跑Linux容器,开发者效率翻倍
-
苹果这次真给开发者送福利了!今天凌晨(6月10日),苹果在官宣的Containerization框架直接炸了技术圈——Mac现在能原生运行Linux容器镜像了!这可不是虚拟机那种“套娃”方案,而是基...
- 7 款老牌经典软件,值得收藏(经典老歌软件)
-
Calibrehttps://calibre-ebook.com/Calibre是一个电脑电子书管理软件。肯定有人说了,电子书还要管理?那当然了。它的功能更强大的让你想象不到,首先它可以导入PDF,...
- 神仙级的免费开源电子书阅读器,还支持听书功能
-
神仙级的免费开源电子书阅读器,还支持听书功能,极空间部署『KoodoReader』哈喽小伙伴们好,我是Stark-C~前段时间不是给大家分享的电子书管理工具『TaleBook』嘛~,然后就有粉丝私信...
- 如何在Ubuntu系统中重置root密码(ubuntu忘记密码重置root密码命令)
-
很多人有个问题,就是喜欢把密码设置得很长很复杂,结果谁也没防住,却成功防住了自己ヽ(.ˇдˇ;)ノ对于现代人,特别是年轻人,都有过忘记密码的经历吧。在这篇文章中,我们来了解如何在Ubuntu1...
- 5款功能强大的PDF阅读器,让PDF阅读更轻松
-
分享5款功能强大的PDF阅读器,拥有丰富的PDF阅读工具,支持PDF文档划线、笔记、标记等操作,让PDF阅读更轻松!1.嗨动PDF编辑器一款实用的PDF处理软件,不仅可以阅读PDF文档,还能直接编辑、...
- 上班摸鱼利器! 免费好用的电子书阅读器,NAS轻松部署Koodo Reader
-
哈喽,大家好我是生活爱好者。笔者也是一名小说爱好者,平时用手机用某信读书,会员也开了,在家看体验也不错,但是上班的时候,在工作快速完成之后,想摸个鱼用手机就不太方便啦,作为爱折腾的人,必须要工作认真,...
- 一周热门
- 最近发表
- 标签列表
-
- linux一键安装 (31)
- linux运行java (33)
- ln linux (27)
- linux 磁盘管理 (31)
- linux 内核升级 (30)
- linux 运行python (28)
- linux 备份文件 (30)
- linux 网络测试 (30)
- linux 网关配置 (31)
- linux jre (32)
- linux 杀毒软件 (32)
- linux语法 (33)
- linux博客 (33)
- linux 压缩目录 (37)
- linux 查看任务 (32)
- 制作linux启动u盘 (35)
- linux 查看存储 (29)
- linux乌班图 (31)
- linux挂载镜像 (31)
- linux 软件源 (28)
- linux题目 (30)
- linux 定时脚本 (30)
- linux 网站搭建 (28)
- linux 远程控制 (34)
- linux bind (31)