Linux sed命令实现替换文本内容

admin

发表文章数:3151

首页 » 网络资源 » 正文

方案一:

sed -e 's/localhost:7051/peer0.org1.example.com:7051/' -e 's/localhost:7053/peer0.org1.example.com:7053/' -e 's/localhost:7054/ca.org1.example.com:7054/'  -e 's/localhost:7050/orderer.example.com:7050/'  < $HOME/.composer/cards/jdoe@trade-network/connection.json  > /tmp/connection.json && cp -p /tmp/connection.json $HOME/.composer/cards/jdoe@trade-network/

sed:流编辑器

-e:多点编辑

<:输入文件

>:输出文件

上边命令的作用就是将$HOME/.composer/cards/jdoe@trade-network/connection.json这个文件作为输入(前边用了<符号),将文件内容中的logcalhost:7051替换为/peer0.org1.example.com:7051,后边的类似。然后替换后的文件临时放在/tmp/connection.json,并通过cp -p命令把更换内容后的文件替换原来的文件。

为什么不直接输出呢,还用个临时文件。原因就是当直接这样

sed -e 's/a/1/' < ./testset.txt > ./testset.txt

会导致整个testset.txt的文件被清空。当指定其他的一个文件后,它才会将变更后的内容写进指定的这个文件中。cp -p实现复制并保留临时文件。

方案二:

sed -i 就是直接对文本文件进行操作的

sed -i 's/原字符串/新字符串/' /home/1.txt

sed -i 's/原字符串/新字符串/g' /home/1.txt

这两条命令的区别就是,看示例吧

这是1.txt的内容

#cat 1.txt

d

ddd

#ff

再看执行这两条命令的区别吧

sed -i 's/d/7523/' /home/1.txt

执行结果

7523

7523dd

#ff

sed -i 's/d/7523/g' /home/1.txt

执行结果

7523

752375237523

#ff

去掉 “行首” 带“@”的首字母@

sed -i 's/^@//' file

 

特定字符串的行前插入新行

sed -i '/特定字符串/i 新行字符串' file

 

特定字符串的行后插入新行

sed -i '/特定字符串/a 新行字符串' file

 

特定字符串的删除

sed -i '/字符串/d' file

 ———————————————— 

版权声明:本文为CSDN博主「帅气的梧桐述」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/h363659487/article/details/81262361

未经允许不得转载:作者:admin, 转载或复制请以 超链接形式 并注明出处 夜河资源网
原文地址:《Linux sed命令实现替换文本内容》 发布于2019-08-19

分享到:
赞(0) 打赏

评论 抢沙发

5 + 9 =


撰写不易~如果您觉得文章对您有帮助的话可以打赏我哦~谢谢亲亲~

支付宝扫一扫打赏

微信扫一扫打赏

外服网游加速器破解版
包含腾讯网游加速器、海豚网游加速器等八款知名加速器,可加速外服游戏,永久包售后包更新,不定时添加新款破解版加速器!
切换注册

登录

忘记密码 ?

切换登录

注册