社区
系统维护与使用区
帖子详情
sed -i '1s/^/#/p' filename为什么会多出一行来?该怎么解决啊
wj8106
2010-01-26 09:24:57
我想实现的功能是把匹配到的行加#号注释,可是得到的结果是#号加上了,可是同样的行有两行了,举个具体的例子,
filename的内容为:
aa
bb
我执行sed -i '1s/^/#/p' filename,结果filename变为:
#aa
#aa
bb
这个问题该如何解决啊!
...全文
339
6
打赏
收藏
sed -i '1s/^/#/p' filename为什么会多出一行来?该怎么解决啊
我想实现的功能是把匹配到的行加#号注释,可是得到的结果是#号加上了,可是同样的行有两行了,举个具体的例子, filename的内容为: aa bb 我执行sed -i '1s/^/#/p' filename,结果filename变为: #aa #aa bb 这个问题该如何解决啊!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
steptodream
2010-01-27
打赏
举报
回复
[Quote=引用 4 楼 liucy1983 的回复:]
[root@CentOS ~]# vi aa
aa
bb
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
"aa" 3L, 7C written
[root@CentOS ~]# sed -i '1s/^/#/g' aa
[root@CentOS ~]# cat aa
#aa
bb
[root@CentOS ~]# sed -i '1s/^/#/p' aa
[root@CentOS ~]# cat aa
##aa
##aa
bb
[root@CentOS ~]#
[/Quote]
你要在第一行前面加#号 这个就可以
sed -i '1s/^/#/g' aa
要在匹配某个东西的任意行前面加#号 这个
sed -i "/这里写你要匹配的东西/s/^/#/" filename
sed -i '1s/^/#/p' aa
至于这个东西 为什么第一行会成2行 你看看sed用法里p的作用你就知道了
wj8106
2010-01-27
打赏
举报
回复
谢谢steptodream
liucy1983
2010-01-27
打赏
举报
回复
[root@CentOS ~]# vi aa
aa
bb
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
"aa" 3L, 7C written
[root@CentOS ~]# sed -i '1s/^/#/g' aa
[root@CentOS ~]# cat aa
#aa
bb
[root@CentOS ~]# sed -i '1s/^/#/p' aa
[root@CentOS ~]# cat aa
##aa
##aa
bb
[root@CentOS ~]#
steptodream
2010-01-26
打赏
举报
回复
sed -i '1s/^/#/g' filename
这个也可以 不过你这是在第一行的前面加#号啊
wj8106
2010-01-26
打赏
举报
回复
哦,是不是我最后加“g”加错了,上边我写错了,我用的命令是sed -i '1s/^/#/g' filename
steptodream
2010-01-26
打赏
举报
回复
我告诉你一个吧
sed -i "/这里写你要匹配的东西/s/^/#/" filename
比如要匹配以aa开头的行 并在行首加#
sed -i "/^aa/s/^/#/" filename
三剑客 awk
sed
grep
-v 变量名称=值 [ root@node01 ~ ] # awk -v name="martin" 'BEGIN{print name}' martin # 在BEGIN{}模式中定义 [ root@node01 ~ ] # awk 'BEGIN{name="demon";print name}' demon # awk中变量不定义,默认值为空 [ root@node01 ~ ] # awk 'BEGIN{print data}'
sed
流编辑器核心原理与生产级文本处理实战
sed
(Stream Editor)是Unix/Linux系统中专为高效流式文本处理设计的命令行工具,其本质是基于模式空间与暂存空间的单次遍历编辑引擎,无需加载全文、不依赖外部依赖,天然适配无状态、内存受限的运维与自动化场景。它不同于grep的只读匹配或awk的结构化计算,核心价值在于可编程、原子化的就地修改能力——支持跨行操作、条件分支、正则替换与安全删除。在日志清洗、配置注入、CI/CD流水线预处理等高频任务中,
sed
以毫秒级响应和零运行时开销成为不可替代的‘文本手术刀’。本文深入解析
sed
的地址定界、
sed
命令常见用法
运用
sed
命令高效地删除文件的特定行 1. 删除某
一行
首先,我们先从删除某
一行
开始,比如删除第
一行
、最后
一行
,实际也就是第 N 行嘛。 删除第 N 行的命令格式:
sed
'Nd'
file
删除最后
一行
#
sed
'$d'
sed
-demo.txt 2. 删除某些行
sed
命令可以删除连续又或者不连续的行内容。 删除连续的行,例如删除从 5 到 7 行 的内容: #
sed
'5,7d'
sed
-demo.txt 删除不连续的行,例如删除第 1 、第 5 、第 9 和最后
一行
: #
sed
'
中级
sed
实战:Linux文本流水线的核心能力解析
sed
(Stream Editor)是Linux系统中专为文本流处理设计的轻量级编辑器,其核心原理在于基于模式空间的单行/多行流式处理,不加载全文、不维护上下文、不解析结构,仅通过地址范围、替换标志、保持空间等机制实现高效变形。这种‘无状态流水线’特性赋予它在日志清洗、配置批量修改、安全审计等场景中不可替代的技术价值——尤其在Kubernetes YAML处理、Nginx配置运维、Kali渗透测试等高频工程实践中,
sed
常与grep、awk协同构成文本处理黄金三角。本文聚焦GNU
sed
与BSD
sed
的兼
Linux-Shell编程之
sed
和awk
本文介绍了两种常用的文本处理工具:
sed
和awk。
sed
是一种流编辑器,通过读取、处理和输出文本实现编辑功能,常用于文本替换和过滤。awk则是一种强大的文本分析工具,按行处理数据并执行指定操作,适合结构化文本处理。两者都遵循读取-处理-输出的工作流程,但awk支持更复杂的编程逻辑。文章分别阐述了它们的基本概念、工作原理和典型用法,为文本处理提供了实用参考。
系统维护与使用区
19,614
社区成员
74,561
社区内容
发帖
与我相关
我的任务
系统维护与使用区
系统使用、管理、维护问题。可以是Ubuntu, Fedora, Unix等等
复制链接
扫一扫
分享
社区描述
系统使用、管理、维护问题。可以是Ubuntu, Fedora, Unix等等
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章