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

How to replace dot in property file using shell script

首先我看到了类似的问题 one.I 遵循了那些 threads.But 的解决方案仍然无法解决 it.I 想从中删除点 (.) 属性 文件的密钥。有人可以帮助确定问题吗

我有一个 属性 文件 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' 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

您可以通过tr命令替换点,

tr '.' '_' .tempds.properties

您从 tempds.properties 创建了 .tempds.properties 但您仍然调用 tempds.properties.

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

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