在 bash 中使用 sed 和 awk 查找变量=值的方法

问题描述 投票:0回答:2

如何使用

variable=value
&
sed
提取字符串中的
awk

例如考虑以下字符串,

大家好,你们好吗。我想从这个字符串中提取

birthdate=July0808128

bash ksh
2个回答
1
投票
$ s="birthdate=July0808128"

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

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

--编辑--

我有很多行的文件。其中 3 行类似于:>Hi Rock 你好吗。我想从这个字符串中提取birthdate=July0808128。 >嗨,阿克谢,你好吗。我想从这个字符串中提取birthdate=July0808128。我想从上面提取生日=July0808128 字符串

grep -Po 'birthdate=\w+' yourfile 

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

应该可以。


1
投票

您可以使用

awk
=

处进行分割
variable=$(awk -F'=' '{print $1}')
value=$(awk -F'=' '{print $2}')
echo $variable $value

在一个衬垫中执行此操作的一种方法是使用

read
函数读取
awk
或您使用的任何命令的输出。例如:

line="birthdate=July0808128"
read variable value <<< $(echo $line | awk -F'=' '{print $1 " " $2}')
echo $variable
echo $value

将会输出

birthdate
July0808128
© www.soinside.com 2019 - 2024. All rights reserved.