sed中将指定行的变量,替换为另一个变量

假设有一个sample.text文件,内容:"passwd":"shadoworld2333","port":2333 "enable":1,"method":... 假设有一个sample.text文件,内容:

"passwd": "shadoworld2333",

"port":2333

  "enable": 1,

"method": "cfb",

"port": "6777"

想通过sed命令,将第5行中port的值改为一个随机数

sed -i "/port/ s/\(.*:\).*/\1$RANDOM/"  sample.text

会同时将第二行及第五行的port值改变,如何做到只改变第五行?
展开
 我来答
cnbubble
2017-08-25 · TA获得超过2607个赞
知道大有可为答主
回答量:1990
采纳率:83%
帮助的人:764万
展开全部

如果行数固定,可以用

sed -i "5s/\(.*:\).*/\1$RANDOM/"  sample.text
追问
感谢!

那如果用你的代码,将第5行的port改为随机数后,将这个随机数替换第一行"shadoworld2333"的数字,应该怎样写?
比如第5行,port的值替换为随机数28901,要将这个28901替换到第一行,将第一行变为:
"passwd": "shadoworld28901",
追答
如果你的随机数是外面赋值的,完全可以单独更改第一行,就像改第五行那样,如果是要先从文件获得第五行的数再赋值,可以先取得第五行数据赋值给中间变量,再对第一行更改
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式