1

phppgadmin構成ファイル ( /usr/share/phppgadmin/conf/config.inc.php) があります。次の行があります 。

$conf['extra_login_security'] = false;

私はそれを次のように変更したいと思います:

$conf['extra_login_security'] = true;

bashシェルスクリプトを使用。sed/awk などを使用する必要があることは理解しています。しかし、私がやりたいことをするためにそれを正確に使用する方法がわかりません。

4

1 に答える 1

2

false から true への単純なグローバル置換が必要な場合は、それsed 's/false/true/g'を行います。

$ echo "conf['extra_login_security'] = false" | sed 's/false/true/g'
conf['extra_login_security'] = true

ただし、最初の行のみをconf[変更し、値を true に変更するだけの場合は、これの方が優れていますsed 's/\(^.*conf\[.*\] =\) false/\1 true/g'

echo "conf['extra_login_security'] = false" | sed 's/\(^.*conf\[.*\] =\) false/\1 true/g'
conf['extra_login_security'] = true

編集:

その行だけを次のように実行できます。

sed -i 's/\(^.*conf\[.extra_login_security.\] =\) false/\1 true/' /usr/share/phppgadmin/conf/config.inc.php

変更をファイルに保存するために使用-iするか、元のファイルを上書きしたくない場合は新しいファイルにリダイレクトします。

sed 's/\(^.*conf\[.extra_login_security.\] =\) false/\1 true/' > mynewfile.php

書き込み権限がない場合の秘訣は、出力を次mynewfile.phpのようにパイプすることです。teesudo

sed 's/\(^.*conf\[.extra_login_security.\] =\) false/\1 true/' | sudo tee mynewfile.php

ティーからman tee- 標準入力から読み取り、標準出力とファイルに書き込みます。

于 2012-11-09T11:13:09.843 に答える