我有像
这样的内容key1="value1" key2="value2"
key1="value11" key2="value22"
key1="value111" key2="value222"
我希望像
一样输出value1
value11
value111
,即基本值
但是当我grep
显示整行时,我尝试使用cut
仍然无法获得预期结果,有些人可以帮我写这篇文章吗
答案 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