安装部署脚本中:sed用法记录(转)

在linux系统上,sed的查找、替换、删除功能有着强大的实用性:

  1. 安装应用程序时,输入某些参数替换默认参数。
  2. 启动应用程序时,读取配置文件中的变量。
  3. 删除某些文件中的空行或者删除脚本中"#"开始的注释行。

1. 输入参数,替换配置文件中的默认参数

eg.  在log4j配置文件log4j.properties中:

log4j.appender.FileApp=org.apache.log4j.RollingFileAppender
log4j.appender.FileApp.File=/tmp/log/app.log 
log4j.appender.FileApp.MaxFileSize=20MB
log4j.appender.FileApp.MaxBackupIndex=10
log4j.appender.FileApp.layout=org.apache.log4j.PatternLayout
log4j.appender.FileApp.layout.ConversionPattern=%d{ISO8601} %r [%t] %-5p %c{1} - %m%n

默认文件输出路径为/tmp/log/app.log,用户安装的时候可以指定一个其他文件路径的脚本:

read input 
sed -i "s/ log4j.appender.FileApp.File=.*/ log4j.appender.FileApp.File=$input/g " log4j.properties 

 

2. shell读取配置文件参数

eg. 在Spring的配置文件applicationContext.properties中:

## MySQL DB part
mysql.db.user=root
mysql.db.password=password
mysql.db.schema=test

读取MySQL用户名、密码等的脚本:

ConfigFile=applicationContext.properties
UserLine=`sed -n "/mysql.db.user/p" $ConfigFile`
User=`echo ${UserLine#*=}`
echo $User
   #输出结果root

 

3. 删除applicationContext.properties中#开始的行:

sed -i "/^#/"d  applicationContext.properties

猜你喜欢

转载自hz-chenwenbiao-rr.iteye.com/blog/1629511
今日推荐