linux 删除换行符的方法小结

互联网   05-21 16:38:13   作者:佚名   我要评论

这篇文章主要介绍了linux 删除换行符的方法小结,需要的朋友可以参考下

今天需要删除文件里面的换行符,比如有一个文件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、使用vim删除换行符

vim输入命令:%s/\n//g

2、使用sed命令,例如 sed ':t;N;s/\n//;b t' a.txt

结果:1,2,34,5,61,2,34,5,61,2,34,5,61,2,34,5,61,2,34,5,6

解释一下:

:t 定义label "t"
b t 转到label "t" 继续执行
N 先读入一行到sed的模板空间,加个换行符(\n),再向sed模板空间追加下一行(之后sed 对模板空间中的内容执行s/\n/,/替换,并显示替换后的内容)

3、使用td命令,例如:

cat a.txt | tr '\n' ' ' 
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:

sed 's/^M//g' file.txt > tmp.txt
sed -i 's/\"/\\\"/g' tmp.txt
rm -f out.txt; touch out.txt
cat tmp.txt | xargs echo -n >> out.txt
rm -f tmp.txt

五个步骤分别为:

将Windows格式的换行转换成UNIX格式,也就是删除所有的\r字符。其中^M并不是直接输入这两个字符,而是通过在shell里面按住 Ctrl+V,然后再敲 M 得到的
将所有的双引号转义,因为后面的echo需要使用
创建一个全空的输出文件
删除所有的\n字符并输出最终文件
删除中间文件

相关文章

  • Linux环境下VI/VIM编辑文件时无权限保存的解决方法(普通用户)

    在Linux环境下,如果直接使用VI/VIM命令编辑没有修改权限的文件时,保存的时候就会提示用户无法进行保存操作,这里给出几种解决方法,需要的朋友可以参考一下
    2018-04-19
  • linux下vi编辑只读文档无法保存的解决方法

    这篇文章主要介绍了linux下vi编辑只读文档无法保存的解决方法,需要的朋友可以参考下
    2018-04-19
  • Linux字体模糊该怎么解决? Linux让字体清晰的教程

    Linux字体模糊该怎么解决?Linux系统中的字体看上去很模糊,想要让字体清晰显示,该怎么实现呢?下面我们就来看看Linux让字体清晰的教程,需要的朋友可以参考下
    2018-04-02
  • Linux mpstat命令的方法(实时系统监控工具)

    mpstat是Multiprocessor Statistics的缩写,是实时系统监控工具。其报告与CPU的一些统计信息,这些信息存放在/proc/stat文件中。在多CPUs系统里,其不但能查看所有CPU的平
    2018-02-18
  • linux iostat命令使用介绍

    iostat主要用于监控系统设备的IO负载情况,iostat首次运行时显示自系统启动开始的各项统计信息,之后运行iostat将显示自上次运行该命令以后的统计信息。用户可以通过指定统
    2018-02-18
  • Linux三剑客之awk命令使用详解

    awk 是一种很棒的语言,它适合文本处理和报表生成,其语法较为常见,借鉴了某些语言的一些精华,如 C 语言等。在 linux 系统日常处理工作中,发挥很重要的作用,掌握了 awk
    2018-02-18
  • linux tcpdump抓取HTTP包的详细解释

    这篇文章主要介绍了linux tcpdump抓取HTTP包的详细解释,需要的朋友可以参考下
    2018-02-17
  • 浅谈新手选择使用Linux桌面的七个注意点

    刚接触Linux桌面的用户该如何选择一款合适的Linux桌面环境呢?如果你习惯使用Windows或OS X,那么一想到要选择就让人犯难,那么你又该如何在十几个主要的Linux桌面、几十个
    2018-02-06
  • 浅谈2017年Linux 的五大痛点

    这篇文章主要介绍了浅谈2017年Linux 的五大痛点,2017年Linux的五大痛点具体是什么,通过本文我们一起来了解下吧,下面请参考本文具体介绍
    2018-02-05
  • 浅谈为什么磁盘慢会导致Linux负载飙升

    这篇文章主要介绍了浅谈为什么磁盘慢会导致Linux负载飙升,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2018-02-01

最新评论