2017-02-19 22 views
-1

をsedのtest.txtが含まれているとします。編集の設定ファイルと

define('DB_NAME', 'wordpress'); 
/** MySQL database username */ 
define('DB_USER', 'root'); 
/** MySQL database password */ 
define('DB_PASSWORD', 'pass'); 

私はbashスクリプトを使用して上記のファイルを編集したいと思います。私はスクリプトを実行し、'wordpress''foobar'と置き換えて言う。ここでは、私がこれまで持っているものです:

#!/usr/bin/bash 

# Database config 
echo -e "\ndatabase name: \c" 
read DB_NAME 

sed -i "s/^\define\('DB_NAME',\s*'(.*\$)'\);/\1$DB_NAME/" "C:/Apache24/htdocs/test.txt" 

は、スクリプトを実行するとtest.txtは私が達成しようとしているではない方法であるが、変更されますありません。実際、ファイルの内容はまったく変わりません。

上記の定数にsedと組み合わせて使用​​される検索と置き換えの正しい正規表現は何ですか? GNUで

+0

は、この質問は、任意の研究努力は表示されません。 – melpomene

+0

私は午後のほとんどを費やしましたか? – cookie

+0

あなたの質問は、「*ここにいくつかのランダムなコードがありますが、lol *は動作しません」という形式です。それぞれの部分を別々に調べて、それが何をしていると思っているのかを説明することができます(マニュアルへのリンクを含むかもしれません)。その時点で、各部分を検証して、理解が現実に合致することを確認することができます。そして、あなた自身でそれをデバッグして、より良い質問をすることができました。 – melpomene

答えて

2

はsedを:

sed -i "s/define('DB_NAME', '.*');/define('DB_NAME', 'foobar');/" file 
+0

これで私は '' foobar''を '' $ FOOBAR "'という変数に簡単に置き換えることができました。ブリックとありがとう – cookie

+0

期間とastrixの両方が二重引用符で囲まれ、次に一重引用符で囲まれていることに興味があります:)。 – cookie

関連する問題