首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用于将多行连接到分隔符后面的单行的Perl脚本

用于将多行连接到分隔符后面的单行的Perl脚本
EN

Stack Overflow用户
提问于 2012-11-09 12:54:26
回答 2查看 7.5K关注 0票数 1

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

流阅读器的内容如下

代码语言:javascript
运行
复制
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
:

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

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

输出应为:

代码语言:javascript
运行
复制
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:

有没有人能帮我想个办法或命令来实现这个目标?

EN

回答 2

Stack Overflow用户

发布于 2012-11-09 13:04:59

一种方法:

代码语言:javascript
运行
复制
$ 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:
票数 3
EN

Stack Overflow用户

发布于 2012-11-09 14:13:09

代码语言:javascript
运行
复制
perl -p -e 's/\n/ /g;s/:[\s]*/:\n/g' your_file

测试如下:

代码语言:javascript
运行
复制
> 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 :
>
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13302301

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档