【发布时间】:2018-03-23 13:16:03
【问题描述】:
我正在尝试使用 sed 将 pgbouncer.ini 中的 [databases] 替换为
[databases]
db = host=localhost port=5432 dbname=db user=r00t password=xyz
这是我的 bash 脚本:
CR=$(printf '\r')
sed "s/\[databases\]\$/\[databases\]$CR db = host=localhost port=5432 dbname=db user=r00t password=xyz/" pg.ini
不幸的是,我只看到了这个:
db = host=localhost port=5432 dbname=db user=r00t password=xyz
更新:
变量会导致接受的答案出现问题。我得到错误:
sed: -e 表达式 #1, char 127: 命令后的多余字符
sed -i "/\[databases\]/a\
main_db = host=${MAIN_DB_LOC} port=5432 dbname=${MAIN_DB} user=r00t password=${MAIN_DB_PASSWORD}
audit_db = host=${AUDIT_DB_LOC} port=5432 dbname=${AUDIT_DB} user=r00t password=${AUDIT_DB_PASSWORD}
lat_lng_db = host=${LAT_LNG_DB_LOC} port=5432 dbname=${LAT_LNG_DB} user=r00t password=${AUDIT_DB_PASSWORD}
" /etc/pgbouncer/pgbouncer.ini
【问题讨论】:
-
我猜你想要
CR=$(printf '\r\n')(Windows) 或CR=$(printf '\n')(UNIX)