设为首页收藏本站
天天打卡

 找回密码
 立即注册
搜索
查看: 41|回复: 16

linux 删除换行符的方法小结

[复制链接]

2

主题

56

回帖

176

积分

注册会员

积分
176
发表于 2024-4-20 10:28:35 | 显示全部楼层 |阅读模式
今天需要删除文件里面的换行符,比如有一个文件a.txt:
  1. 1,2,3
  2. 4,5,6
  3. 1,2,3
  4. 4,5,6
  5. 1,2,3
  6. 4,5,6
  7. 1,2,3
  8. 4,5,6
  9. 1,2,3
  10. 4,5,6
复制代码
1、使用vim删除换行符
vim输入命令:%s/\n//g
2、使用sed命令,例如 sed ':t;N;s/\n//;b t' a.txt
结果:1,2,3
4,5,6
1,2,3
4,5,6
1,2,3
4,5,6
1,2,3
4,5,6
1,2,3
4,5,6
解释一下:
  1. :t 定义label "t"
  2. b t 转到label "t" 继续执行
  3. N 先读入一行到sed的模板空间,加个换行符(\n),再向sed模板空间追加下一行(之后sed 对模板空间中的内容执行s/\n/,/替换,并显示替换后的内容)
复制代码
3、使用td命令,例如:
  1. cat a.txt | tr '\n' ' '
  2. 1,2,3 4,5,6 1,2,3 4,5,6 1,2,3 4,5,6 1,2,3 4,5,6 1,2,3 4,5,6
复制代码
注意tr最后那个参数是空格,否则会报错
Linux shell 中删除文件的所有换行符
需要做一个小功能,就是把一个文本文件中的所有换行符都去掉。一般肯定是想到使用sed来修改啦。但是我搜了一下,并没有找到sed要怎么输入\n——我知道^M对应的是\r,但是\n却失败了,在命令行中直接被切割掉。
  原则上可以用\015这样的方式来指定的,但是我实际操作发现并不行,没有效果。所以最终我只能用直接输入命令来做了(还没验证过写成脚本是否能用)。
假设要替换的文件叫做in.txt,输出文件为out.txt:
  1. sed 's/^M//g' file.txt > tmp.txt
  2. sed -i 's/"/\\"/g' tmp.txt
  3. rm -f out.txt; touch out.txt
  4. cat tmp.txt | xargs echo -n >> out.txt
  5. rm -f tmp.txt
复制代码
五个步骤分别为:
将Windows格式的换行转换成UNIX格式,也就是删除所有的\r字符。其中^M并不是直接输入这两个字符,而是通过在shell里面按住 Ctrl+V,然后再敲 M 得到的
将所有的双引号转义,因为后面的echo需要使用
创建一个全空的输出文件
删除所有的\n字符并输出最终文件
删除中间文件

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

0

主题

47

回帖

95

积分

注册会员

积分
95
发表于 2024-5-26 22:14:54 | 显示全部楼层
友善的讨论氛围是非常重要的。

1

主题

36

回帖

96

积分

注册会员

积分
96
发表于 2024-6-29 01:57:46 | 显示全部楼层
谢谢你分享这个信息

1

主题

61

回帖

123

积分

注册会员

积分
123
发表于 2024-7-23 16:25:33 | 显示全部楼层
我不太确定,可能需要再确认一下。

1

主题

41

回帖

105

积分

注册会员

积分
105
发表于 2024-8-8 09:03:47 | 显示全部楼层
6666666666

1

主题

44

回帖

112

积分

注册会员

积分
112
发表于 2024-8-27 02:49:01 | 显示全部楼层
同意!

0

主题

47

回帖

95

积分

注册会员

积分
95
发表于 2024-8-29 07:02:47 | 显示全部楼层
我想了解更多

1

主题

25

回帖

73

积分

注册会员

积分
73
发表于 2024-8-30 02:52:16 | 显示全部楼层
感谢分享,受益匪浅!

1

主题

68

回帖

157

积分

注册会员

积分
157
发表于 2024-9-2 20:25:46 | 显示全部楼层
说得太好了,完全同意!

2

主题

41

回帖

127

积分

注册会员

积分
127
发表于 2024-9-13 00:01:14 | 显示全部楼层
看了LZ的帖子,我只想说一句很好很强大!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|爱云论坛 - d.taiji888.cn - 技术学习 免费资源分享 ( 蜀ICP备2022010826号 )|天天打卡

GMT+8, 2024-11-24 09:35 , Processed in 0.109382 second(s), 26 queries .

Powered by i云网络 Licensed

© 2023-2028 正版授权

快速回复 返回顶部 返回列表