1

我在文件中有一个输出,我想逐行解析文件,以便将带有“ip地址(10.113.193.70)”和“版本:47.80.99.08”的行发送到标准输出。使用 grep/awk 或 bash 进行解析的最佳方法是什么?

10.113.193.70

Executing (0,0,0,0,0,0,0,0,0,0):
==== product information ====
Product: e10
Package: default
Version: 47.80.99.08
Type:    customer
Builder: symsm
Project: RAID
4

2 回答 2

4

一切awk sed grep bash都会奏效

这是假设带有 IP 的行位于该行的开头,并且没有其他行以数字开头。
否则,您可以改进 IP 模式。

重击:

#!/usr/bin/env bash
while read -r
do [[ $REPLY =~ ^(Version|[[:digit:]]) ]] && echo "$REPLY"
done < file

grep:

$ grep "^\(Version\|[[:digit:]]\)" file
10.113.193.70
Version: 47.80.99.08

awk:

$ awk '$1 ~ /^(Version|[0-9])/ { print }' file
10.113.193.70
Version: 47.80.99.08

赛德:

$ sed -n '/^\(Version\|[[:digit:]]\)/p' file
10.113.193.70
Version: 47.80.99.08
于 2012-09-20T20:23:19.850 回答
0

一种方法:

grep '[0-9][.][0-9]*[.][0-9]*[.][0-9]' filename
于 2012-09-20T20:16:41.463 回答