awk:获得一定的价值

时间:2015-01-23 13:15:11

标签: regex awk find

Identifiable: fasdf/=egbalid=/more.garble/XY=foo.bar.baz

我有一行可以使用/Identifiable/唯一标识。我想要的是XY的价值(在这种情况下是foo.bar.baz)。我怎么能在awk中得到它?

3 个答案:

答案 0 :(得分:1)

您可以将grep用于此目的。

grep -oP '^(?=.*\bIdentifiable\b).*\bXY=\K[\w.]+' file

示例:

$ echo 'Identifiable: fasdf/=egbalid=/more.garble/XY=foo.bar.baz' | grep -oP '^(?=.*\bIdentifiable\b).*\bXY=\K[\w.]+'
foo.bar.baz

答案 1 :(得分:0)

假设XY值总是在行的末尾(当发布一行样本输入时总是很难猜测):

$ awk -F= '/Identifiable/{print $NF}' file
foo.bar.baz

答案 2 :(得分:0)

这是一种方式:

echo "Identifiable: fasdf/=egbalid=/more.garble/XY=foo.bar.baz" | awk -F"XY=" '{print $2}'
foo.bar.baz