2

次のようなファイルがあります。

$variable['keyword1']   = 'value1';
$variable['keyword2']   = 'value2';
$variable['keyword3']   = 'value3';
$variable['keyword4']   = 'value4';

キーワード 1 ~ 4はすべて一意で、文字と数字のみです。

値 1 ~ 4は一意である場合と一意ではない場合があり、文字、数字、特殊文字の任意の組み合わせにすることができます

value1またはvalue2またはvalue3またはvalue4を抽出して $somevariable として保存できるようにする必要があります。したがって、キーワードは明らかに、目的の値を取得するために sed コマンドで定義する必要があるものです。sed ワンライナーを使用してそれを行うにはどうすればよいですか? 私にはそれほど難しいようには見えませんが、それを解読することはできないようです。何時間もグーグルでさまざまな組み合わせを試していました。

4

1 に答える 1

3
sed -n "s/\$\w\+\['keyword1'\]\s*=\s*'\([^']\+\)';/\1/p" inputfile

保存するには:

somevariable=$(sed -n "s/\$\w\+\['keyword1'\]\s*=\s*'\([^']\+\)';/\1/p" inputfile)

あなたのファイルがあなたが説明したものとまったく同じであれば、これを使用することもできます:

grep keyword1 inputfile | sed "s/.*=\s*'\([^']\+\)';/\1/"

またはもっと良い:(ウィリアムに感謝)

sed "/keyword1/s/.*=\s*'\([^']\+\)';/\1/" inputfile
于 2012-07-16T05:03:32.890 に答える