如何使用 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`
首先我看到了类似的问题 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`