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值改变,如何做到只改变第五行? 展开
"passwd": "shadoworld2333",
"port":2333
"enable": 1,
"method": "cfb",
"port": "6777"
想通过sed命令,将第5行中port的值改为一个随机数
sed -i "/port/ s/\(.*:\).*/\1$RANDOM/" sample.text
会同时将第二行及第五行的port值改变,如何做到只改变第五行? 展开
1个回答
展开全部
如果行数固定,可以用
sed -i "5s/\(.*:\).*/\1$RANDOM/" sample.text
追问
感谢!
那如果用你的代码,将第5行的port改为随机数后,将这个随机数替换第一行"shadoworld2333"的数字,应该怎样写?
比如第5行,port的值替换为随机数28901,要将这个28901替换到第一行,将第一行变为:
"passwd": "shadoworld28901",
追答
如果你的随机数是外面赋值的,完全可以单独更改第一行,就像改第五行那样,如果是要先从文件获得第五行的数再赋值,可以先取得第五行数据赋值给中间变量,再对第一行更改
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询