Shell中如何删除文本比较长的行的实现方法

有的时候需要对文件执行删除删除操作,这个时候比较常用的会使用vi命令中的dd命令,比如先执行10G(跳转到第10行),然后再执行20dd(删除20行),但实际情况未必是这么常规,比如说,要删除文件中,某行长度超过200个字符的行,如果文本比较小,还好,如果是几万行,几十万行的呢? 这个想用vi就不现实了。 我然想到的办法就是:比如说,通过sed,awk,egrep命令来达到目的。 举个简单例子。

假如说如下文本文件,要将其中长度为5字符以上的给删除掉。

root@linux# cat data

1

22

333

4444

55555

666666

7777777

88888888

方法一: 使用awk命令的length()函数

root@linux# cat data | awk '{if (length($0) <=4 ) print $0}'

1

22

333

4444

方法二: 使用grep命令

root@linux# cat data | egrep -w '^.{1,4}'

1

22

333

4444

方法三: 使用sed命令

root@linux# cat data | sed -n '/^.\{5,\}/!w NewFile'

root@linux# cat NewFile

1

22

333

4444

备注:

1. 使用awk,grep命令的时候,可以将处理好的文件重定向到另外一个新文件中

2. egrep -w参数,表示仅跟模式匹配的单词

3. ^. 表示以任意字符开头的行,这个和-w命令匹配使用,这个很关键,否则找不到

4. !w  !表示所有模式不匹配的,w是输出,写入到新文件NewFile文件中

如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

linux下如何删除整行文本格式,Shell中如何删除文本比较长的行的实现方法相关推荐

  1. raw文件 linux,Linux下安装RawTherapee,跨平台RAW格式图像处理工具

    原标题:Linux下安装RawTherapee,跨平台RAW格式图像处理工具 正文 跨平台的RAW格式照片处理系统RawTherapee 5.8于近日发布.以下是在Ubuntu 18.04,Ubunt ...

  2. linux rm无法删除权限不够,linux下的文件用root用户rm -rf命令无法删除解决方案

    linux下的文件用root用户rm -rf命令无法删除解决方案(可能文件处在挂载的磁盘阵列(U盘,光盘.硬盘等),而磁盘阵列在别的服务器上,以下解决步骤和方案可能只是针对这一种情况,不保证解决所有类 ...

  3. Linux下,用户信息存储位置与格式,用户名,密码,用户id组id等存放文件位置

    Linux下,用户信息存储位置与格式 用户信息文件: /etc/passwd文件中的内容,是由一行七位,用六个:分割的行组成的所有的用户信息配置文件, 这里面存放的用户信息虽然长短不一,但格式是固定的 ...

  4. 在linux下的使用复制命令cp,不让出现“overwrite”(文件覆盖)提示的方法。

    2019独角兽企业重金招聘Python工程师标准>>> 在linux下的使用复制命令cp,不让出现"overwrite"(文件覆盖)提示的方法. 一般我们在使用c ...

  5. linux 下的动态库制作 以及在python 中如何调用 c 函数库

    linux 下的动态库制作 以及在python 中如何调用 c 函数库 动态库: 动态库又称动态链接库英文为DLL,是Dynamic Link Library 的缩写形式,DLL是一个包含可由多个程序 ...

  6. 下载m3u8视频及在Linux下将ts合并为mp4格式

    背景 在爬取视频时偶尔会遇见m3u8格式的视频链接,视频下载后为多个ts文件,下面分享如何下载m3u8格式视频以及在Linux下将ts文件合成mp4 文件. m3u8格式链接解析 url = xxxx ...

  7. linux 移动硬盘 大于4g,Linux下挂大于2G的NTFS格式移动硬盘方法

    linux下挂载ntfs格式U盘,硬盘等外部存储的方法 Linux下加载NTFS格式移动硬盘的解决方案 原创: 本解决方案需借助两个内核模块来支持,即ntfs-3g和fuse-2.X,其中fuse-2 ...

  8. linux下实现dlna识别当前音频格式,如何将实时音频流设置为DLNA兼容设备?

    问题描述 有没有办法将声卡的实时输出从我们的12.04.1 LTS amd64桌面流式传输到我们网络中的DLNA-compliant外部设备?使用Rygel,miniDLNA和uShare选择共享目录 ...

  9. linux下输入ls显示时间格式,【Linux基础】linux下修改ls显示的时间格式

    NSThread 子线程 Cocoa NSOperation GCD(Grand Central Dispatch) 多线程 单词:thread 英 θred:n 线.思路.vt 穿过.vi 穿透过 ...

最新文章

  1. “996 是福利,007 才是常态”?!千万程序员怒怼每日优鲜!
  2. GIS中的坐标系定义与转换
  3. delphi 怎么监测image有没有变动_社会舆情监测引导应对解决方案
  4. MVVM模式的3种command总结[2]--RelayCommand
  5. 一起来玩树莓派--解决官方docker源安装失败的问题
  6. Mysql修改数据库密码的几种方法
  7. 卡尔曼滤波测量球体自由落下
  8. githua 账号合并_如何合并他人的分支 github
  9. 在 Chrome 浏览器中安装印象笔记·剪藏插件
  10. android u盘检测工具,android U盘检测及获取内存储器信息
  11. Docker端口映射不起作用的解决办法
  12. QT 之QTreeWidget实现好友列表
  13. ArduPilot添加新的惯导方案
  14. 软件工程基础第一次作业
  15. 【死磕 Spring】----- IOC 之 Factory 实例化 bean
  16. 计算机风扇维修,千米快修电脑维修:电脑风扇散热不好,经常出问题怎么办?...
  17. JSP程序设计——手机销售网后台设计
  18. 人工智能导论--浙江工业大学--王万良
  19. 开发板、原理图和数据手册-1.3.ARM裸机第三部分-朱有鹏-专题视频课程
  20. nfc读卡java开发,分享一段飞天R502读卡器的JAVA读卡代码

热门文章

  1. 回滚 - 每天5分钟玩转 Docker 容器技术(141)
  2. Greenplum介绍
  3. 《Node.js区块链开发》一3.5 亿书对DPoS机制的改进
  4. PHP的SQL注入攻击的技术实现以及预防措施
  5. M1事后分析报告--We have power to change the origin state
  6. 编译安装SVN不结合apache
  7. linux学习--shell重定向
  8. hdu4169_Wealthy Family_树形DP(2011美国区域赛)
  9. 公司--显示效果,多出来的用...
  10. 公司内部 action调用持久层规范