shell脚本问题,求大神解答

怎样写一个shell脚本,将一个json文件中所有必须以"vin"开头的字符串比如"vin":11111111替换成"vin":222222222,怎样办到?... 怎样写一个shell脚本,将一个json文件中所有必须以"vin"开头的字符串比如"vin":11111111替换成"vin":222222222,怎样办到? 展开
 我来答
czwan2007
2018-05-09 · TA获得超过3957个赞
知道大有可为答主
回答量:1834
采纳率:57%
帮助的人:667万
展开全部
cat a.txt 
asdasd
sda
asdasdas
asdasd"vin":11111111
asdasda
"vin":11111111
asdfgsdgdf
"vin":11111111
safsdgdfgdfg

将上文中以"vin":开头的部分替换掉

sed -i 's/\(^"vin":\).*/\12222222/g' a.txt

执行后结果

cat a.txt 
asdasd
sda
asdasdas
asdasd"vin":11111111
asdasda
"vin":2222222
asdfgsdgdf
"vin":2222222
safsdgdfgdfg

替换成功。

追问
如果要忽略"vin"签名的空格怎么办,还要把22222222换成变量呢
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
喊佳呀乖GA
2018-05-09 · TA获得超过364个赞
知道小有建树答主
回答量:555
采纳率:88%
帮助的人:168万
展开全部
#/bin/bash
file=/autorun/aa/file3
while read line
do
##这里是取行首前三个字符等于vin
a=`echo $line|cut -c1-3`
if [ "$a" = "vin" ];then
##yourkey是你要替换成发内容
find /autorun/aa -name file3|xargs sed -i "s/$line/yourkey/g"
fi
done <$file
更多追问追答
追问
如果要忽略"vin"签名的空格怎么办,还要把22222222换成变量呢
追答
忽略"vin"签名的空格啥意思?

22222222换成变量的话,你在开头定义下yourkey=你的关键字,然后把find /autorun/aa -name file3|xargs sed -i "s/$line/yourkey/g"改成find /autorun/aa -name file3|xargs sed -i "s/$line/$yourkey/g" 就行了
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式