如何使用shell脚本替换属性文件中的点

时间:2015-01-30 09:08:18

标签: linux bash shell unix terminal

首先,我已经看到类似于这个问题。我已经按照那些线程的解决方案。但仍然无法修复它。我想从属性文件的键中删除点(。)。可以一些人帮助确定问题

我有一个属性文件tempds.properties

#Fri Jan 30 07:37:25 CET 2015
ds.home=/opt/abc
mykey=/opt/xyz

我使用另一个脚本test.sh

cd /opt
chmod 777 tempds.properties

#awk -F= -vOFS="=" 'gsub(/\./,"_",$1)+1' tempds.properties
cat tempds.properties| sed 's/\./_/g' > .tempds.properties


echo "Processing  "
for i in {1..5}; do
    sleep 1
    echo "..........."


done

. /opt/tempds.properties
echo $ds_home
echo $mykey
echo "Process finishd"

输出:

root@onebox:/opt# sudo ./test.sh
Processing
...........
./test.sh: 2: /opt/tempds.properties: ds.home=/opt/abc: not found

/opt/xyz
Process finishd

2 个答案:

答案 0 :(得分:2)

您从.tempds.properties创建tempds.properties,但之后仍然会调用tempds.properties

您可以完全跳过创建临时文件:

eval `sed 's/\./_/g' tempds.properties`

答案 1 :(得分:0)

您可以使用tr命令

替换点
tr '.' '_' .tempds.properties