2017-10-11 120 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