特定文本替换

发布于 2022-10-15 09:33:58 字数 466 浏览 27 评论 0

本帖最后由 greenandtree 于 2011-04-14 21:14 编辑

linux系统中我想修改某个文件,文件内容有三行,大致如下:
dynamic modulename1 0   dynamic modulename1 0
dynamic modulename1 1 dynamic modulename1 2
dynamic modulename1 1 dynamic modulename1 2
dynamic modulename1 3  dynamic modulename1 3
由于文件数量较多,请问怎么使用脚本把第二行的dynamic modulename1 1 dynamic modulename1 2
修改成dynamic modulename1 1 dynamic modulename1 1(第三行的不变)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(8

清风挽心 2022-10-22 09:33:58

假设源文件名为:test.txt
编写脚本modify.sed:
#!/bin/sed -f
#replace.sed
2 \c
dynamic modulename1 1 dynamic modulename1 1

执行:modify.sed test.txt

这样应该可以

凉栀 2022-10-22 09:33:58

这样也可以,
sed -i '2s/.*/dynamic modulename1 1 dynamic modulename1 1/' test.txt
如果文字太长,可以用变量替换

非要怀念 2022-10-22 09:33:58

回复 2# talang_408

    有些不理解 您能不能再详细一点做个注释

好久不见√ 2022-10-22 09:33:58

你是要修改一个文件呢,还是要修改多个文件,不然为什么要说文件数量较多

好菇凉咱不稀罕他 2022-10-22 09:33:58

先纠正一下,应该是2 c\

#!/bin/sed -f  ----引用了bin下的sed命令
2 c\    ------意思是要修改第二行的内容
.......     -------这是修改后的内容

夜吻♂芭芘 2022-10-22 09:33:58

回复 2# talang_408

我想把文件中的第12行
            dynamic */usr/.so.0.0.0:XmlGenerater() "--holdnum 4000 --timeout 1 --threadnum 1 --conffile /etc/pr300.conf"
替换成:dynamic */usr/.so.0.0.0:XmlGenerater() "--holdnum 1--timeout 1 --threadnum 4 --conffile /etc/pr300.conf"
我尝试了你上面的命令是不行的

逆蝶 2022-10-22 09:33:58

回复 1# greenandtree

    sed '2s/2/1/g' :第一个2为行数!

零時差 2022-10-22 09:33:58

谢谢啊

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文