捕获特定变量并打印其值

时间:2013-07-25 09:40:31

标签: perl sed awk

想要捕获特定变量,在本例中为DataIp,并打印它的值。

数据:

<UnitInstance DataIp="10.1.1.1" Hostname="crg11" ID="30">

输出:

10.1.1.1

1 个答案:

答案 0 :(得分:4)

例如......

$ grep -Po '(?<=DataIp=\")[^\"]+' file
10.1.1.1

我们寻找DataIp="之后的所有内容并打印所有内容,直到找到"。请注意,双引号需要转义:\"

使用sed

$ sed 's/.*DataIp=\"\([^\"]*\)\".*/\1/g' file
10.1.1.1

我们在DataIp之后抓住了这个词,然后打印出来。


考虑到我们想要抓住"包裹的第一个单词的一般情况,我们也可以这样做......

使用awk

$ awk -F\" '{print $2}' file
10.1.1.1

我们根据"分隔符拆分字段中的记录并打印第二个。

使用cut

$ cut -d'"' -f2 file
10.1.1.1

我们根据"分隔符拆分字段中的记录并打印第二个。