shell脚本问题,求大神解答
怎样写一个shell脚本,将一个json文件中所有必须以"vin"开头的字符串比如"vin":11111111替换成"vin":222222222,怎样办到?...
怎样写一个shell脚本,将一个json文件中所有必须以"vin"开头的字符串比如"vin":11111111替换成"vin":222222222,怎样办到?
展开
2个回答
展开全部
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换成变量呢
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#/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
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" 就行了
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询