次のような変数があるとしましょう。
$string = 'cat somecommandhere'
これで、上記のコマンドの出力は次cat
のようになります。
test="Thanks serverfault"
引用符間の値を抽出し、引用$string
符を含む同じ変数に保存したいと思います。文字列に次の値を含めたいと思います。
$string = "Thanks serverfault"
sed
grep
または代わりにこれを行うにはどうすればよいですかawk
?まだ学んでいませんawk
。
ベストアンサー1
これが「2番目の部分」を意味し、二重引用符を切り捨てることを意味するとcut
推論しやすいので使用します。-f2
-d'"'
$ output='test="Thanks serverfault"'
$ string=$( echo $output | cut -f2 -d'"' )
$ echo $string
Thanks serverfault
本当に引用をしたい場合は、自分で再度追加すると、答えが必要以上に混乱しているように見えます。
本当に使いたい場合sed
(幸いにも引用符も保存されます):
$ output='test="Thanks serverfault"'
$ string=$( echo $output | sed 's/^test=//' )
$ echo $string
"Thanks serverfault"
説明sed
:
s/^test=//
string find/replace mode ^ | ^ replace with nothing
starts with test=