shell脚本获取键值

时间:2015-03-23 06:58:47

标签: bash shell

我有像

这样的内容
key1="value1" key2="value2"
key1="value11" key2="value22"
key1="value111" key2="value222"

我希望像

一样输出
value1
value11
value111

,即基本值

但是当我grep显示整行时,我尝试使用cut仍然无法获得预期结果,有些人可以帮我写这篇文章吗

3 个答案:

答案 0 :(得分:2)

使用awk,你可以搜索这样的给定键:

awk -v s="key1" -F '[= "]+' '{for (i=1; i<NF; i+=2) if ($i==s) print $(i+1)}' file
value1
value11
value111

awk -v s="key2" -F '[= "]+' '{for (i=1; i<NF; i+=2) if ($i==s) print $(i+1)}' file
value2
value22
value222

答案 1 :(得分:1)

使用cut本身:

cut -d \" -f 2 < File

"设置为分隔符并提取2nd字段。希望它有所帮助。

awk的另一个类似解决方案:

awk -F\" '{print $2}' File

答案 2 :(得分:1)

使用grep -P

$ grep -oP '(?<=key1=")[^"]*' file
value1
value11
value111