0
私は勉強しようとしているbashスクリプトを持っています。正規表現に基づいて文字列から値を取得
create user myuser with password 'mypassword';
私はsedを使用し、1つのbashの変数と別のbashの変数にpaswordにパスワードの値を格納したい:私はそれで持っているSQLファイルを持っています。私が学んでいるスクリプトには:
USERNAME := $(shell sed -n \
"s/^create user \(\S\+\) with password '\(\S\+\)';$$/\1/p" \
createdb.sql)
PASSWORD := $(shell sed -n \
"s/^create user \(\S\+\) with password '\(\S\+\)';$$/\2/p" \
createdb.sql)
正規表現を試しても問題はありません。私の問題の一部は、私はsedの基礎を理解していないということです。文字列の一部の値を取得するにはどうすればよいですか?
$ strを、この場合のファイルでしょうか? –
hm ...外部の 'grep'とbash組み込み正規表現の後に、1つの外部sed +読み込みの代わりに? – jm666
あなたはそうかもしれませんが、これは少し簡単です。 'sed'の出力を'読み込み 'するために' IFS'で使う安全な1文字の区切り文字を出そうとするのではなく、複数の文字区切り文字 'パスワード付き'を使って2つの値を区切ります。 – chepner