Linux 如何使用shell脚本替换属性文件中的点
首先,我看到了与此类似的问题。我遵循了这些线程的解决方案。但我仍然无法修复它。我想从属性文件的键中删除点(.)。有人可以帮助识别问题吗 我有一个属性文件tempds.propertiesLinux 如何使用shell脚本替换属性文件中的点,linux,bash,shell,unix,terminal,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'
#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
您可以使用
tr
命令替换点
tr '.' '_' .tempds.properties
您可以从
tempds.properties
创建.tempds.properties
,但仍然调用tempds.properties
您可以完全跳过创建临时文件:
eval `sed 's/\./_/g' tempds.properties`