1

ファイルに出力があり、ファイルを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パターンを調整できます。

bash:

#!/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:

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

1 つのアプローチ:

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