首先,我已经看到类似于这个问题。我已经按照那些线程的解决方案。但仍然无法修复它。我想从属性文件的键中删除点(。)。可以一些人帮助确定问题
我有一个属性文件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
答案 0 :(得分:2)
您从.tempds.properties
创建tempds.properties
,但之后仍然会调用tempds.properties
。
您可以完全跳过创建临时文件:
eval `sed 's/\./_/g' tempds.properties`
答案 1 :(得分:0)
您可以使用tr
命令
tr '.' '_' .tempds.properties