在bash中使用sed&awk找到variable = value的方法
问题描述:
如何使用sed
提取variable=value
& awk
?在bash中使用sed&awk找到variable = value的方法
例如考虑以下字符串,
嗨人们你好吗。我想从这个字符串中提取
birthdate=July0808128
。
答
你可以使用awk
在=
variable=$(awk -F'=' '{print $1}')
value=$(awk -F'=' '{print $2}')
echo $variable $value
分裂有可能是一个办法做到这一点的一个镜头,但我现在懒得man awk
。
+0
我们可以在一个班轮内做到这一点,找到一个词&提取词=值? – Rock
答
$ 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
应该工作。
你想提取“出生日期”和“July0808128”?....你有什么试过? – Matt
我用了很长的令人毛骨悚然的grep -wd表达 – Rock
'ksh'或'bash'?他们是两个不同的炮弹(实际上,有很多不同的,互不相容的炮弹是以ksh的名义发行的;我在阵营中,如果它不是由David Korn写的,它是不是真正的ksh,克隆,像pdksh或mksh,通常缺少特征)。如果是bash,你有'[[$ string =〜$ regex]]',所以你不需要'sed' *或*'awk'。 –