赞
踩
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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。