这类文件该怎么处理?

这类文件该怎么处理?

Logical: 1

physical id: 1
size: 1111

physical id: 2
size: 2222

Logical: 2

physical id: 3
size: 3333


END

如果我想得到如下格式的输出
1/1:1111
1/2:2222
2/3:3333
用awk好,还是perl好?
用perl的话,哪位大虾能给个例子么?


[Copy to clipboard] [ - ]
CODE:
perl -ne '$logical=$1 if /Logical:\s+(\d+)/;print "$logical/$1" if /physical id:\s+(\d)/;print ":$1\n" if /size:\s+(\d+)/;' filename



QUOTE:
原帖由 ynchnluiti 于 2008-10-27 16:23 发表
perl -ne '$logical=$1 if /Logical:\s+(\d+)/;print "$logical/$1" if /physical id:\s+(\d)/;print "1\n" if /size:\s+(\d+)/;' filename

3q,原来还可以这样。。
一直以为只能s/..(..)../$1/这种时候可以用。。


QUOTE:
原帖由 camby 于 2008-10-27 15:25 发表
Logical: 1

physical id: 1
size: 1111

physical id: 2
size: 2222

Logical: 2

physical id: 3
size: 3333


END

如果我想得到如下格式的输出
1/1:1111
1/2:2222
2/3:3333
用awk好,还 ...

awk 简洁

awk '/Logical/{a=$2}/physical/{b=$2;getline;print a"/"b":"$2}' urfile


QUOTE:
原帖由 ly5066113 于 2008-10-27 18:02 发表


awk 简洁

awk '/Logical/{a=$2}/physical/{b=$2;getline;print a"/"b":"$2}' urfile

主要是一时没想出来怎么写