このコードを追加したい
$cfg['Servers'][$i]['hide_db'] = '^(mysql|information_schema|performance_schema|phpmyadmin)$';
phpMyAdminと入力してください設定ファイル.inc.php文書今後ワイヤー
/**
* End of servers configuration
予想される結果:
$cfg['Servers'][$i]['hide_db'] = '^(mysql|information_schema|performance_schema|phpmyadmin)$';
/**
* End of servers configuration
*/
これはサンプルです設定ファイル.inc.php文書(https://github.com/phpmyadmin/phpmyadmin/blob/master/config.sample.inc.php)
私の現在のsed
コードは。ファイルは
#!/bin/sh
PHPMATARGETDIR="/var/www/phpmyadmin"
sudo sed -i "s/\(\/\*\*\)/ #my code before;\n\1/" ${PHPMATARGETDIR}/config.inc.php
しかし、うまくいきません。開いているすべてのコメントブロックの前にのみ追加されます。
このコードを使用すると、まったく機能しません。
sudo sed -i "s/\(\/\*\*\n\s*\* End of servers configuration\)/ #my code before;\n\1/" ${PHPMATARGETDIR}/config.inc.php
答え1
sedでこれを行うことができます。
sed "/\/\*\*/{
N
/ \* End of servers config/i\
\$cfg['Servers'][\$i]['hide_db'] = '^(mysql|information_schema|performance_schema|phpmyadmin)\$';
}" config.inc.php
あなたが提供するものには、config.inc.php
実際には以下が含まれています。
/*
* End of servers configuration
*/
いいえ二重アスタリスク -/\/\*/
単に最初の式と2番目の式を作成する方が安全です。/End of servers config/
答え2
私にとって、解決策はPerl bashを使用することでした。ここからそしてこの参照。
PHPMATARGETDIR="/var/www/phpmyadmin"
ADDPMACONFIG="\$cfg['Servers'][\$i]['hide_db'] = '^(mysql|information_schema|performance_schema|phpmyadmin|sys)\$';"
ADDPMACONFIG=$(printf '%s\n' "$ADDPMACONFIG" | sed -e 's/[]\/$*.|()^[]/\\&/g')
sudo perl -0777 -i -p -e "s/(\/\*\*\n\s+\*\s+End of servers configuration.*)/${ADDPMACONFIG}\n\1/" ${PHPMATARGETDIR}/config.inc.php