[转帖]linux删除文本文件空白行
linux删除文本文件空白行
https://www.zhihu.com/people/chen-kai-84-54-75
sed命令
在Linux中,可以使用sed命令批量删除文本中的空白行。以下是一个示例命令:
sed -i '/^$/d' filename.txt
这个命令将会删除 filename.txt 文件中所有的空白行,并且直接在原文件中进行修改, -i 参数表示直接在文件中进行修改。
解释一下,sed命令可以用来编辑文本,-i表示直接在原文件中进行修改,/^$/d表示删除空白行。具体来说,/^$/ 是一个正则表达式,表示匹配空白行,d则表示删除匹配到的行。
如果你要处理多个文件,可以使用通配符来匹配文件名,例如:
sed -i '/^$/d' *.txt
这个命令将会匹配所有以 .txt 结尾的文件,并且删除其中的空白行。
grep 命令
可以使用 grep 命令来过滤掉空白行,然后将结果输出到一个新文件中。具体命令如下:
grep -v '^$' filename.txt > newfile.txt
这个命令将会将 filename.txt 文件中除了空白行以外的所有行保存到 newfile.txt 文件中。 -v 参数表示反向选择,也就是选择不匹配正则表达式的行,'^$' 表示匹配空白行。
如果要处理多个文件,可以使用通配符来匹配文件名,例如:
grep -v '^$' *.txt > newfile.txt
这个命令将会将所有以 .txt 结尾的文件中除了空白行以外的所有行保存到 newfile.txt 文件中。
还可以使用 grep 命令和正则表达式来删除空白行。以下是一个示例命令:
grep -vE '^[[:space:]]*$' filename.txt > newfile.txt
这个命令将会将 filename.txt 文件中的所有空白行删除。-v 参数表示反向选择,也就是选择不匹配正则表达式的行,-E 参数表示使用扩展的正则表达式,'^[[:space:]]*$' 表示匹配只包含空白字符的行。
如果要处理多个文件,可以使用通配符来匹配文件名,例如:
grep -vE '^[[:space:]]*$' *.txt > newfile.txt
这个命令将会将所有以 .txt 结尾的文件中的所有空白行删除。
awk 命令
awk 命令也可以用来删除空白行。以下是一个示例命令:
awk NF filename.txt > newfile.txt
这个命令将会将 filename.txt 文件中除了空白行以外的所有行保存到 newfile.txt 文件中。NF 表示输出非空行,也就是只输出有内容的行。
如果要处理多个文件,可以使用通配符来匹配文件名,例如:
awk NF *.txt > newfile.txt
这个命令将会将所有以 .txt 结尾的文件中除了空白行以外的所有行保存到 newfile.txt 文件中。
tr 结合 grep 命令
可以使用 tr 命令将空白行替换为其他字符,然后使用 grep 命令过滤掉这些字符。具体命令如下:
tr -s '\n' < filename.txt | grep -v '^$' > newfile.txt
这个命令将会将 filename.txt 文件中的所有空白行替换为一个换行符,然后使用 grep 命令过滤掉空白行。-s 参数表示压缩连续的换行符为一个换行符,'^$' 表示匹配空白行。
perl 命令
可以使用 perl 命令来删除空白行。以下是一个示例命令:
perl -i -ne 'print if /\S/' filename.txt
这个命令将会将 filename.txt 文件中除了空白行以外的所有行保存到原文件中。 -i 参数表示直接在原文件中进行修改,/\S/ 表示匹配非空白字符。
如果要处理多个文件,可以使用通配符来匹配文件名,例如:
perl -i -ne 'print if /\S/' *.txt
这个命令将会将所有以 .txt 结尾的文件中除了空白行以外的所有行保存到原文件中。
paste 命令
可以使用 paste 命令将多个文件合并为一个文件,并且去掉空白行。以下是一个示例命令:
paste -s -d '\n' filename.txt > newfile.txt
这个命令将会将 filename.txt 文件中的所有行合并为一行,并且在每行之间加上一个换行符,然后输出到 newfile.txt 文件中。-s 参数表示将多个文件合并为一个文件,-d '\n' 表示在每行之间加上一个换行符。
如果要处理多个文件,可以使用通配符来匹配文件名,例如:
paste -s -d '\n' *.txt > newfile.txt
这个命令将会将所有以 .txt 结尾的文件中的所有行合并为一个文件,并且在每行之间加上一个换行符,然后输出到 newfile.txt 文件中。
[转帖]linux删除文本文件空白行的更多相关文章
- linux vi 删除一行,复制一行命令,删除所有空白行
删除所有空白行(^是行的开始,\s*是零个或者多个空白字符:$是行尾) :g/^\s*$/d 删除一行: dd 复制一行: yy ,之后是要 p 才会贴上来的.
- linux删除文件未释放空间问题处理
linux删除文件未释放空间问题处理 或者 /根分区满了 (我的根分区是/dev/sda1,/dev/sda1满了) http://blog.csdn.net/donghustone/article/ ...
- linux删除、读取文件原理
linux删除文件原理 LINUX的文件名是存在父目录的block里面,并指向这个文件额inode节点,这个文件的inode节点再标记指向存放这个文件的block的数据块.我们删除一个文件,实际上并不 ...
- Linux删除乱码文件或者目录
Linux删除乱码文件或者目录 有时在Linux下面解压一些zip或者rar文件后会产生乱码文件或者目录,这个时候使用rm不能成功删除,需要使用一些特别的方法 来进行删除,下面是我经常使用的两种方法. ...
- 解决linux删除文件后空间没有释放问题
linux删除文件后沒有释放空间 今天发现一台服务器的home空间满了,于是要清空没用的文件,当我删除文件后,发现可用空间沒有变化 os:centos4.7 现象: 发现当前磁盘空间使用情况: [ro ...
- linux下sort命令使用详解---linux将文本文件内容加以排序命令
转载自:http://www.cnblogs.com/hitwtx/archive/2011/12/03/2274592.html linux下sort命令使用详解---linux将文本文件内容加以排 ...
- Linux 删除文件夹和文件的命令(转载)
Linux 删除文件夹和文件的命令 听语音 | 浏览:93339 | 更新:2013-05-02 18:40 | 标签:linux 文件夹 linux删除目录很简单,很多人还是习惯用rmdir,不过一 ...
- Linux 删除文件后空间不释放【原创】
删除MySQL备份文件后,查找文件所在目录发现文件已经备删除了,但是空间没有释放,还是83% 解决方法: lsof|grep -i delete 发现进程还在,杀掉进程 kill -9 5377 再次 ...
- Linux 删除带有特殊字符的文件
Linux 删除带有特殊字符的文件 http://www.cnblogs.com/tester-hehehe/p/5715128.html
- linux删除svn版本号库
当使用了svn版本号控制系统后每一个文件夹下都会有一个.svn文件夹存在,开发完当交付产品或者上传到server时一般要把这些文件夹删除.事实上在linux删除这些文件夹是非常easy的,命令例如以下 ...
随机推荐
- Spring事务状态处理
Spring事务提交后执行:深入理解和实践 在Java开发中,Spring框架的事务管理是一个核心概念,尤其是在企业级应用中.理解和正确使用Spring事务对于保证应用的数据一致性和稳定性至关重要.本 ...
- 昇腾CANN 7.0 黑科技:大模型训练性能优化之道
本文分享自华为云社区<昇腾CANN 7.0 黑科技:大模型训练性能优化之道>,作者: 昇腾CANN . 目前,大模型凭借超强的学习能力,已经在搜索.推荐.智能交互.AIGC.生产流程变革. ...
- 自定义TBE算子入门,不妨从单算子开发开始
摘要:以单算子开发为例,带你了解算子开发及测试全流程. 为什么要自定义算子 深度学习算法由一个个计算单元组成,我们称这些计算单元为算子(Operator,简称Op).算子是一个函数空间到函数空间上的映 ...
- 基于ModelArts进行流感患者密接排查
摘要:针对疫情期间存在的排查实时性差.排查效率低.无法追踪密接者等问题,可以使用基于YOLOv4的行人检测.行人距离估计.多目标跟踪的方案进行解决. 本文分享自华为云社区<基于ModelArts ...
- CPU高速缓存与极性代码设计
摘要:CPU内置少量的高速缓存的重要性不言而喻,在体积.成本.效率等因素下产生了当今用到的计算机的存储结构. 介绍 cpu缓存的结构 缓存的存取与一致 代码设计的考量 最后 CPU频率太快,其处理速度 ...
- 华为云构建云原生DevSecOps平台,保障软件供应链全流程安全可信
摘要:面临网络安全挑战的大环境下,华为云构筑的云原生DevSecOps平台,打造了创新可控的安全服务,助力企业软件供应链全生命周期安全. 2022年8月13日,"2022中国DevOps社区 ...
- linux centos8 安装php nginx mysql 运行phpcms网站
重新换vps,用centos8,重新配置系统环境,记下笔记: 安装nginx与php 首先安装nginx php ,安装默认版本的nginx,php默认安装7 yum install nginx ph ...
- 配置阿里云docker镜像加速
配置好后 重新加载一下 daemon [root@centos-linux jimmy]# systemctl daemon-reload [root@centos-linux jimmy]# sys ...
- Mysql--表注释,字段注释
information_schema数据库是MySQL数据库自带的数据库,里面存放的MySQL数据库所有的信息,包括数据表.数据注释.数据表的索引.数据库的权限等等. 1.添加表.字段注释 creat ...
- Codeforce 1335C - Two Teams Composing 统计技能种类数量+统计同一技能最大数量
7 4 2 4 1 4 3 4 统计技能种类数量 4种不同技能 统计同一技能最大数量 技能1(数量1) 技能2(数量1) 技能3(数量1) 技能4(数量4) 选出 技能4(数量4) 作为 第2组 扣除 ...