删除文本文件行号的小方法(shell,sed)

     今天在网上看到一篇文章说什么经常会从网上下到的代码是带行号的,代码比较长时,显然手动来删除是不现实的,所以推荐什么Notepad++等可以删除行号的文本编辑器。楼主当时一看就觉得很2,自己也没去按那人说的方法去装什么编辑器去试。想了一下觉得这种功能随便用正则表达式匹配一下,替换一下不很简单就可以搞定么?实在不行完全可以把匹配方式写入一个脚本中,当做一个工具使用啊~~!

  于是想了一下,想用sed来解决。

  1.一般的格式,大部分是行号开头,后面还带一个空格。所以第一个字符必定是数字,因而用s/[0-9]*//1来匹配就可以了,将第一次出现数字打头的字段替换为空。

  2.再将行号后的空格以空替换,即s/ //1 即可。

  连起来就是: sed 's/[0-9]//1;s/ //1' filename

  如果需要,再重定向到你的代码文件里: sed 's/[0-9]//1;s/ //1' filename > newfile

  OK,搞定了,测试一下:

  

  结果:

   

  当然,匹配的方式有很多,可能有更简便的,我没多想,只想说sed多么方便~~,只要一行命令!

原文地址:https://www.cnblogs.com/XiaoHDeBlog/p/2887180.html