コードベースのバージョンを記述した bash スクリプトを作成したとします (settings.php の下など)。ここで、他の bash スクリプトで言及されているコードベース バージョンを取得する bash スクリプトが必要です。この場合、「Grep」コマンドを使用するにはどうすればよいですか。試してみましたが、成功しませんでした。助けてください。
質問する
342 次
1 に答える
0
grep
ラインマッチングツールです。一致する部分文字列が見つかった行全体を出力します。ただし、bash
スクリプトでは出力を読み取ることができますが、を使用read
すると、出力全体の最後の行のみが得られますgrep
。たとえば、からの出力grep "version"
が次の場合:
version:1.1.1
module_version:0.1.2
次に、read
最後の行のみをキャッチmodule_version:0.1.2
しますが、最初の行はキャッチしません。
ファイルにケースがあると仮定すると、行がありますversion:1.1.1
。あなたができるbashスクリプトで
cat your_file | grep 'version'
read LINE
それはあなたに variable を与えますLINE="version:1.1.1"
。そして、結果の文字列を解析する必要があります。しかし、文字列の形式がわからないので、それを解析する正確なコードを提供することはできません。
ここで詳細を取得した後、適切な解決策があります:
db_version=$(cat $portal_codebase_version/sites/default/settings.php | grep "$GLOBALS['sdm_version']" | sed -n -e "s/^[^=]*= '[^ ]* \(.*\)';$/\1/p")
それはあなたに与えます
$ echo $db_version
3.8.0.4
$
于 2012-11-29T05:26:57.433 に答える