请教sed删除换行符的方法

 我来答
百度网友5311d79
推荐于2016-03-19 · TA获得超过1.9万个赞
知道大有可为答主
回答量:6356
采纳率:71%
帮助的人:3218万
展开全部

因为sed是按行处理文本的,每次只读入一行到内部模式空间内。

因此要删除换行符,需要用sed的N命令全部读入(append方式)所有内容后再用s命令全局替换换行符为空。


用sed做还得考虑要读入多少行的问题,所以这里其实用awk做会更简单。

就上面这个例子:

awk -v RS="" '{gsub("\n","");print}' file.txt

设置记录分隔符(RS)为空,即将所有文件内容看作一条记录(默认是一行一条记录)。

用awk的内置函数gsub全局替换换行符为空,之后print打印即可。

huanglenzhi
2016-03-16 · 知道合伙人数码行家
huanglenzhi
知道合伙人数码行家
采纳数:117538 获赞数:517195
长期从事计算机组装,维护,网络组建及管理。对计算机硬件、操作系统安装、典型网络设备具有详细认知。

向TA提问 私信TA
展开全部

因为sed是按行处理文本的,每次只读入一行到内部模式空间内。

因此要删除换行符,需要用sed的N命令全部读入(append方式)所有内容后再用s命令全局替换换行符为空。

用sed做还得考虑要读入多少行的问题,所以这里其实用awk做会更简单。

就上面这个例子:

 

   

awk -v RS="" '{gsub("\n","");print}' file.txt

   

设置记录分隔符(RS)为空,即将所有文件内容看作一条记录(默认是一行一条记录)。

用awk的内置函数gsub全局替换换行符为空,之后print打印即可。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式