想要捕获特定变量,在本例中为DataIp
,并打印它的值。
数据:
<UnitInstance DataIp="10.1.1.1" Hostname="crg11" ID="30">
输出:
10.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
我们根据"
分隔符拆分字段中的记录并打印第二个。