いくつかの文字列があり、コロン「:」に分割して、変数に左側の名前と右側の値を割り当てたいと思います。たとえば、
echo "Title: Some title" | sed 's/:.*//'
目的の変数名「Title」を入力し、次の操作を行います。
echo "Title: Some title" | sed 's/.*: //'
「一部ヘッダー」という値を教えてください。
私の質問は、上記のコマンドの出力を通じて「Title」という変数を割り当てる方法です。
値を割り当てることはできますが、$(echo "Title: Some title" | sed 's/.*: //)
名前を割り当てる方法が見つかりません。
答え1
これはやや奇妙なことですが、次のようなexport
文を構成することができるようです。
$ export $(echo "Title: Some title" | sed 's/:.*//')="$(echo "Title: Some title" | sed 's/.*: //')"
$ echo $Title
Some title
答え2
答え3
おそらくこれは予想される結果を与えるでしょう。
#!/bin/sh
export Variablename="$(echo "Title: Some title" | awk -F':' '{ print $1}')=\"$(echo "Title: Some title" | awk -F':' '{ print $2 }' | sed -e 's/^[[:blank:]]*//g')\""
出力:
title="一部のタイトル"