2017-10-11 99 views
-2

如何使用sed提取variable=value & awk在bash中使用sed&awk找到variable = value的方法

例如考慮以下字符串,

嗨人們你好嗎。我想從這個字符串中提取birthdate=July0808128

+1

你想提取「出生日期」和「July0808128」?....你有什麼試過? – Matt

+0

我用了很長的令人毛骨悚然的grep -wd表達 – Rock

+0

'ksh'或'bash'?他們是兩個不同的炮彈(實際上,有很多不同的,互不相容的炮彈是以ksh的名義發行的;我在陣營中,如果它不是由David Korn寫的,它是不是真正的ksh,克隆,像pdksh或mksh,通常缺少特徵)。如果是bash,你有'[[$ string =〜$ regex]]',所以你不需要'sed' *或*'awk'。 –

回答

0

你可以使用awk=

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

分裂有可能是一個辦法做到這一點的一個鏡頭,但我現在懶得man awk

+0

我們可以在一個班輪內做到這一點,找到一個詞&提取詞=值? – Rock

1
$ s="birthdate=July0808128" 

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

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

- 編輯 -

我有文件,其中多條線路。其中3行是喜歡,>嗨搖滾 你好嗎。我想從這個字符串中提取birthdate = July0808128。 >你好阿克夏你好嗎。我想從這個字符串中提取birthdate = July0808128。我想提取出生日期= July0808128出的上述 串

grep -Po 'birthdate=\w+' yourfile 

OR

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

應該工作。

+0

我想提取整個字符串不只是一個值, birthdate = July0808128 – Rock

+0

我有文件中有很多行。其中3行就像, >嗨,你好,你好。我想從這個字符串中提取birthdate = July0808128。 >嗨阿克沙你好嗎。我想從這個字符串中提取birthdate = July0808128。 我想從上面的字符串中提取birthdate = July0808128。 – Rock

+0

謝謝。我們可以使用sed或awk來做到這一點嗎? – Rock