1

我从远程系统获取消息,响应是多行的,我必须根据分隔符将其转换为单行。

流阅读器的内容如下

Iam in first Line
Iam in second Line
:

Iam in third Line
Iam  in the forth Line
Iam in fifth Line
:

Iam in Sixth Line
Iam In seventh Line
IAm in Eighth Line
:

响应的多行应转换为单行,直到分隔符“:”

请注意,我是从远程系统读取它,而不是从文件中读取它,它是连续的并且没有 eof。直到与远程系统的连接终止

输出应该是:

Iam in first Line Iam in second Line:
Iam in third Line Iam in the forth Line:
Iam in Sixth Line Iam In Seventh Line Iam in Eighth Line:

有人可以帮忙提供一种方法或命令来实现这一目标吗?

4

2 回答 2

3

单程:

$ perl -pne 'chomp unless(/^:/);' file
Iam in first LineIam in second Line:
Iam in third LineIam  in the forth LineIam in fifth Line:
Iam in Sixth LineIam In seventh LineIAm in Eighth Line:
于 2012-11-09T05:04:59.260 回答
-1
perl -p -e 's/\n/ /g;s/:[\s]*/:\n/g' your_file

测试如下:

> cat temp
Iam in first Line
Iam in second Line
:

Iam in third Line
Iam  in the forth Line
Iam in fifth Line
:

Iam in Sixth Line
Iam In seventh Line
IAm in Eighth Line
:
> perl -p -e 's/\n/ /g;s/:[\s]*/:\n/g' temp
Iam in first Line Iam in second Line :
 Iam in third Line Iam  in the forth Line Iam in fifth Line :
 Iam in Sixth Line Iam In seventh Line IAm in Eighth Line :
>
于 2012-11-09T06:13:09.103 回答