首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用sed替换换行符(\n)?

如何使用sed替换换行符(\n)?
EN

Stack Overflow用户
提问于 2009-08-10 03:10:10
回答 32查看 2M关注 0票数 1.6K

如何使用sed命令将换行符("\n")替换为空格("")?

我尝试了一下,但没有成功:

代码语言:javascript
运行
复制
sed 's#\n# #g' file
sed 's#^$# #g' file

我该如何修复它?

EN

回答 32

Stack Overflow用户

发布于 2013-02-13 20:12:59

一种更短的awk替代方案:

代码语言:javascript
运行
复制
awk 1 ORS=' '

解释

awk程序由由条件代码块组成的规则组成,即:

代码语言:javascript
运行
复制
condition { code-block }

如果省略代码块,则使用默认值:{ print $0 }。因此,1被解释为true条件,并对每一行执行print $0

awk读取输入时,它根据RS (记录分隔符)的值将其拆分成记录,默认情况下,该值是一个换行符,因此awk默认情况下会逐行解析输入。拆分还涉及从输入记录中剥离RS

现在,当打印一条记录时,ORS (输出记录分隔符)被附加到它后面,默认情况下又是一个换行符。因此,通过将ORS更改为空格,所有换行符都将更改为空格。

票数 238
EN

Stack Overflow用户

发布于 2015-05-05 17:43:38

GNU有一个选项-z,用于空分隔开的记录(行)。你可以直接拨打:

代码语言:javascript
运行
复制
sed -z 's/\n/ /g'
票数 194
EN

Stack Overflow用户

发布于 2009-08-09 19:25:27

Perl版本的工作方式符合您的预期。

代码语言:javascript
运行
复制
perl -i -p -e 's/\n//' file

正如评论中所指出的,值得注意的是,此编辑已就位。如果你的regular expression不像你想象的那么聪明,-i.bak会在替换之前给你一个原始文件的备份。

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

https://stackoverflow.com/questions/1251999

复制
相关文章

相似问题

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