2017-10-11 16 views
-2

は、文字列でvariable=valueを抽出するにはsed & awkbashでsed&awkを使用して変数を見つける方法

次の文字列を検討してください。

こんにちは。この文字列からbirthdate=July0808128を抽出したいと思います。

+1

"birthdate"と "July0808128"を抽出したいのですか?...何を試しましたか? – Matt

+0

私は長い不気味なgrep -wd式 – Rock

+0

'ksh'や' bash'を使用しましたか?彼らは2つの異なるシェルです(実際には、**ロット**があり、互いに互換性がなく、kshの名前で配布されています;私はキャンプにいて、David Kornによって書かれていなければ実際のkshではなく、pdkshやmkshのようなクローンは通常は機能がありません)。もしそれがbashなら '[[$ string =〜$ regex]]'を持つので、 'sed' *や*' awk'は必要ありません。 –

答えて

0

あなたは=

variable=$(awk -F'=' '{print $1}') 
value=$(awk -F'=' '{print $2}') 
echo $variable $value 

で分割するawkを使用することがあり一発でそれを行う方法は、おそらくだが、私は今man awkするのが面倒です。

+0

単語を見つけて単語=値を抽出するようなライナーでこれを行うことはできますか? – Rock

1
$ s="birthdate=July0808128" 

$ echo "${s%=*}" 
birthdate 

$ echo "${s#*=}" 
July0808128 

--edit--

私は、多くの行のファイルを持っています。そのうちの3行は、> Hi Rock どうですか?私はこのストリングからbirthdate = July0808128を抽出したいと思います。 >こんにちはAkshay元気?私はこのストリングからbirthdate = July0808128を抽出したいと思います。私は動作するはず 上記の文字列

grep -Po 'birthdate=\w+' yourfile 

OR

grep -Po 'birthdate=\w+[0-9]{7}' yourfile 

のうちの誕生日= July0808128を抽出したいです。

+0

値だけでなく文字列全体を抽出したい 誕生日= July088128 – Rock

+0

多くの行があるファイルがあります。そのうち3行は、 >こんにちはロックですよね。私はこのストリングからbirthdate = July0808128を抽出したいと思います。 >こんにちはAkshay元気?私はこのストリングからbirthdate = July0808128を抽出したいと思います。 上記の文字列のうちbirthdate = July088128を抽出したいと思います。 – Rock

+0

ありがとうございます。私たちはsedやawkを使ってこれを行うことができますか? – Rock

関連する問題