方案一:
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
一、如果您发现本站侵害了相关版权,请附上本站侵权链接和您的版权证明一并发送至邮箱:yehes#qq.com(#替换为@)我们将会在五天内处理并断开该文章下载地址。
二、本站所有资源来自互联网整理收集,全部内容采用撰写共用版权协议,要求署名、非商业用途和相同方式共享,如转载请也遵循撰写共用协议。
三、根据署名-非商业性使用-相同方式共享 (by-nc-sa) 许可协议规定,只要他人在以原作品为基础创作的新作品上适用同一类型的许可协议,并且在新作品发布的显著位置,注明原作者的姓名、来源及其采用的知识共享协议,与该作品在本网站的原发地址建立链接,他人就可基于非商业目的对原作品重新编排、修改、节选或者本人的作品为基础进行创作和发布。
四、基于原作品创作的所有新作品都要适用同一类型的许可协议,因此适用该项协议, 对任何以他人原作为基础创作的作品自然同样都不得商业性用途。
五、根据二〇〇二年一月一日《计算机软件保护条例》规定:为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可不经软件著作权人许可,无需向其支付报酬!
六、鉴此,也望大家按此说明转载和分享资源!本站提供的所有信息、教程、软件版权归原公司所有,仅供日常使用,不得用于任何商业用途,下载试用后请24小时内删除,因下载本站资源造成的损失,全部由使用者本人承担!