我想使用USERNAME
/ PASSWORD
sed
和awk
jdbc.connection.driver_class=com.ibm.as400.access.AS400JDBCDriver
jdbc.connection.username=USERNAME
jdbc.connection.password=PASSWORD
jdbc.minPoolSize=1
jdbc.maxPoolSize=15
我使用以下脚本尝试了它
sed -i -e "s/^${JDBC_USER_KEY}=.*/${JDBC_USER_KEY}=${DATABASE_USER_NAME}/" \
-e "s/^${JDBC_PASSWORD_KEY}=.*/${JDBC_PASSWORD_KEY}=${DATABASE_PASSWORD}/" database.properties
其中:
JDBC_USER_KEY=jdbc.connection.username
DATABASE_USER_NAME=TEST
JDBC_PASSWORD_KEY=jdbc.connection.password
DATABASE_PASSWORD=TEST
但是,输出是:
jdbc.connection.driver_class=com.ibm.as400.access.AS400JDBCDriver
jdbc.connection.username=TESTjdbc.connection.password=TEST
jdbc.minPoolSize=1
jdbc.maxPoolSize=15
该值已被替换,但下一行“jdbc.connection.password = TEST”已被上一行加上。
我在Google上搜索了很多但没有找到任何解决方案。
我也试过awk
(见下文):
awk 'BEGIN{ FS="=";OFS="=" } {if($1==pname) $2=newval; print $0,"\n"}' pname="$property_name" newval="$new_value" $ARTIFACTS_HOME/properties/$1 >> $ARTIFACTS_HOME/properties/test.properties
$property_name
为jdbc.connection.username
且$new_value
为TEST
。
请帮忙!