首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在数字和句子之间替换换行符?

如何在数字和句子之间替换换行符?
EN

Stack Overflow用户
提问于 2015-02-13 11:18:56
回答 2查看 93关注 0票数 3

我想删除一些特殊情况下的换行符。我有一条短信:

代码语言:javascript
复制
0 
15.239 
23.917 
 Reprenem el debat que avui els oferim entorn de les perspectives d'aquest dos mil set. <ehh> Estavem parlant concretament dels temes 
30.027 
de la seguretat mundial 
 una miqueta 
de la intervencio
33.519 
que 

我想替换数字和一些文本之间的换行符如下:

代码语言:javascript
复制
0 
15.239 
23.917 Reprenem el debat que avui els oferim entorn de les perspectives d'aquest dos mil set. <ehh> Estavem parlant concretament dels temes 
30.027 de la seguretat mundial una miqueta de la intervencio
33.519 que

我只想抹去数字和句子之间的新线。

有谁可以帮我?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-02-13 11:30:48

awk

代码语言:javascript
复制
awk '/^[0-9]+\.[0-9]+/{printf "\n"}{printf $0}' filename

用于处理DOS换行:

代码语言:javascript
复制
awk '{sub(/\r$/,"")}/^[0-9]+\.[0-9]+/{printf "\n"}{printf $0}' filename

演示:

代码语言:javascript
复制
$ awk '{sub(/\r$/,"")}/^[0-9]+\.[0-9]+/{printf "\n"}{printf $0}' filename                        

0 
15.239 
23.917  Reprenem el debat que avui els oferim entorn de les perspectives d'aquest dos mil set. <ehh> Estavem parlant concretament dels temes 
30.027 de la seguretat mundial  una miqueta de la intervencio
33.519 que que

解释代码:

  • {sub(/\r$/,"")}:删除DOS换行符。
  • /^[0-9\.]+/{printf "\n"}:当行以number/dot组合开始时,只打印一个回车返回一个带有记录处理的继续。
  • {printf $0}:对于剩馀的记录或者不是由数字启动的记录,只需打印$0,而不需要换行。
  • 最后,把马车的回程放在数字前面,而忽略其余的,这就成了诀窍。
票数 2
EN

Stack Overflow用户

发布于 2015-02-13 11:24:16

我将看一下示例输出,它还删除了句子中间的换行符。你可以用这个:

代码语言:javascript
复制
sed ':a $!{N;ba}; s/\n\([^0-9]\)/\1/g' filename

那是

代码语言:javascript
复制
:a $!{N;ba}          # assemble the whole file in the pattern space
s/\n\([^0-9]\)/\1/g  # remove newlines that are not directly before a number

要处理DOS换行,可以使用

代码语言:javascript
复制
#                   vvvv-- new stuff here
sed ':a $!{N;ba}; s/\r\?\n\([^0-9]\)/\1/g' filename

这将可选择匹配一个\r之前的\n,并删除整个\r\n,以防它找到DOS断线。

或者你可以使用dos2unix。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28498424

复制
相关文章

相似问题

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