您的位置:首页 > 运维架构 > Linux

linux读取文件中的一行,解析字符串并赋值给变量

2008-11-18 22:01 489 查看
line="/vision/system.properties.{IP}=192.168.12.123"

eval `echo $line|awk -F '.{' '{print "path="$1}'`

echo $path

#以上命令实现 解析字符串line,提取"/vision/system.properties" 并赋值给变量path

eval `echo $line|awk -F '.{' '{print "key_and_value="$2}'

eval `echo $key|awk -F '}=' '{print "key="$1}'

echo $key

#上面两条命令实现 提取字符串line中的"IP"并赋值给key

读文件

例如template.txt文件中的内容有:

/vision/system.properties.{IP}=192.168.12.123

/vision/system.properties.{PORT}=8083

......

shell 脚本如下

while read line
do
eval `echo $line|awk -F '.{' '{print "vt_path="$1}'`
eval `echo $line|awk -F '.{' '{print "vt_key_and_value="$2}'`
eval `echo $vt_key_and_value|awk -F '}' '{print "vt_key={"$1"}"}'`
eval `echo $line|awk -F '}=' '{print "vt_value="$2}'`

//判空

if [ -n $vt_path ] && [ -n $vt_key ] &&[ "{}" != $vt_key ] && [ -n $vt_value ]; then

sed -i -e s/$vt_key/$vt_value/g $vt_path
fi
:
done < template.txt
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: