1

複数行の文字列を含む変数があります。最初の 2 行を読み取り、その値に基づいて何らかの処理を行う必要があります。これどうやってするの ?

私の変数内のサンプル値は

 Description: some value
 Entity: Some value
 Fixed

最初の 2 行 (Description と Entity) を異なる変数として取得する必要があります。

4

2 に答える 2

3

sed:

$ echo "$var"
Description: some value
Entity: Some value
Fixed

$ var2=$(sed -n 1p <<< "$var")

$ var3=$(sed -n 2p <<< "$var")

$ echo $var2
Description: some value

$ echo $var3
Entity: Some value

値のみが必要な場合:

$ var2=$(sed -n '1s/.*: //p' <<< "$var")

$ var3=$(sed -n '2s/.*: //p' <<< "$var")

$ echo $var2
some value

$ echo $var3
Some value

と同じことgrep

$ var2=$(grep Description <<< "$var")

$ var3=$(grep Entity <<< "$var")

$ echo $var2
Description: some value

$ echo $var3
Entity: Some value

値のみ:

$ var2=$(grep -Po "Description: \K.*" <<< "$var")

$ var3=$(grep -Po "Entity: \K.*" <<< "$var")

$ echo $var2
some value

$ echo $var3
Some value
于 2013-03-15T09:47:50.273 に答える
2

例:

$ echo "$MYVAR"
Description: some value
Entity: Some value
Fixed

$ VAR1=$(echo "$MYVAR" | sed -n 1p)

$ VAR2=$(echo "$MYVAR" | sed -n 2p)

VAR1VAR2の 1 行目と 2 行目がMYVARそれぞれ含まれるようになりました。

$ echo $VAR1
Description: some value

$ echo $VAR2
Entity: Some value
于 2013-03-15T09:45:55.937 に答える