2013-03-15 53 views
1

我有一個包含多行字符串的變量。我需要閱讀前兩行,並根據它們的值進行一些處理。 我該怎麼做?從shell中的多行變量讀取

我的變量中的樣本值

Description: some value 
Entity: Some value 
Fixed 

我需要得到前兩行(說明和實體)爲不同的變量。

+0

http://www.whathaveyoutried.com/ – ormaaj 2013-03-15 09:49:26

回答

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 
2

在例如:

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

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

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

VAR1VAR2現在包含分別MYVAR第一和第二行:

$ echo $VAR1 
Description: some value 

$ echo $VAR2 
Entity: Some value