在Linux中查看文件并过滤空行的多种方法

 更新时间:2025年10月29日 10:15:16   作者:会飞的土拨鼠呀  
这篇文章主要介绍了在Linux中查看文件并过滤空行的多种方法,包括使用grep、sed、awk等工具,这些方法可以根据具体需求选择使用,其中grep是最简单常用的方法,下面小编为大家详细说说,需要的朋友可以参考下

在 Linux 中查看文件内容时过滤掉空行有多种方法,以下是几种常用的方法:

方法 1:使用 grep

grep -v '^$' filename
  • -v:反转匹配,只显示不匹配的行
  • '^$':表示空行的正则表达式(行首后立即为行尾)

要同时过滤掉仅含空格或制表符的行:

grep -v '^[[:space:]]*$' filename

方法 2:使用 sed

sed '/^$/d' filename
  • /^$/d:删除空行(d 表示 delete)

要同时过滤掉空白字符行:

sed '/^[[:space:]]*$/d' filename

方法 3:使用 awk

awk 'NF' filename
  • NF:表示"字段数量",当行内容为空时,NF=0,评估为假,因此不打印

显示行号:

awk 'NF {print NR, $0}' filename

方法 4:使用 cat + grep

cat -s filename | grep -v '^$'
  • -s:压缩连续的空白行为单行(但不会完全删除)

方法 5:使用 printf 或 echo 测试

# 测试字符串
printf "Line1\n\nLine3\n" | grep -v '^$'

# 输出结果:
# Line1
# Line3

高级技巧:保留格式同时过滤空行

带行号显示

grep -n '[^[:space:]]' filename | grep -v '^[[:space:]]*$'

处理多文件

grep -v '^$' file1 file2 file3

编辑文件时删除空行

# 使用 sed 原地编辑
sed -i '/^[[:space:]]*$/d' filename

# 安全备份版本
sed -i.bak '/^[[:space:]]*$/d' filename

统计非空行数

grep -c '[^[:space:]]' filename

处理特殊文件

# 处理 Windows 格式文件(CRLF)
grep -v $'^[[:space:]]*\r$' windows_file.txt

# 处理 tab 分隔文件
awk -F'\t' 'NF > 0' tab_file.tsv

永久配置忽略空行

编辑 .bashrc 添加别名:

# 添加到 ~/.bashrc
alias nlcat="awk 'NF {print NR, \$0}'"
alias nocat="grep -v '^[[:space:]]*$'"

重新加载配置:

source ~/.bashrc

使用别名:

nocat filename  # 显示无空行文件
nlcat filename   # 带行号显示无空行文件

实际应用示例

假设有文件 example.txt 内容:

First line


Second line with space after:    
	Third line with tab
	
Last line

使用高级过滤:

grep -v '^[[:space:]]*$' example.txt

输出:

First line
Second line with space after:    
	Third line with tab
Last line

这些方法可以根据具体需求选择使用,grep -v '^$' 是最简单常用的方法,而 grep -v '^[[:space:]]*$'awk 'NF' 则更全面,能够过滤掉所有空白行。

到此这篇关于在Linux中查看文件并过滤空行的多种方法的文章就介绍到这了,更多相关Linux查看文件并过滤空行内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Hbase入门详解

    Hbase入门详解

    今天小编就为大家分享一篇关于Hbase入门详解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-01-01
  • linux下的yum命令原理和详解

    linux下的yum命令原理和详解

    本文主要介绍linux下的yum命令原理和详解,讲解的比较全面,需要的朋友可以参考一下。
    2016-06-06
  • Linux下gdb调试打印数组元素以及说明

    Linux下gdb调试打印数组元素以及说明

    这篇文章主要介绍了Linux下gdb调试打印数组元素以及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • 在Linux服务器下查看公网IP地址的方法

    在Linux服务器下查看公网IP地址的方法

    在接口对接的时候,很多公司需要对方提供公网ip地址来配置对应的IP白名单,那么在Linux环境下怎么查看对应服务器的公网IP呢,所以本文给大家介绍了在Linux服务器下查看公网IP地址的方法,需要的朋友可以参考下
    2023-12-12
  • Linux下Apache安装/增加mod_rewrite模块的方法

    Linux下Apache安装/增加mod_rewrite模块的方法

    如果你的服务器apache还没有安装,那很简单,在编译apache时将mod_rewrite模块编译进去就可以。如果你的apache已经安装好了,现在只想编译出mod_rewrite.so模块,在apache中进行加载,下面介绍这个方法。
    2010-07-07
  • centos7.0安装离线JDK1.8方法详解

    centos7.0安装离线JDK1.8方法详解

    这篇文章主要介绍了centos7.0安装离线JDK1.8方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-06-06
  • Yum中报错:“pycurl.so: undefined symbol: CRYPTO_num_locks”的问题排查

    Yum中报错:“pycurl.so: undefined symbol: CRYPTO_num_locks”的问题排查

    这篇文章主要给大家介绍了在Yum中报错: "pycurl.so: undefined symbol: CRYPTO_num_locks"的问题排查的相关资料,文中通过图文介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-06-06
  • Linux如何定时删除7天前的日志文件

    Linux如何定时删除7天前的日志文件

    这篇文章主要介绍了Linux如何定时删除7天前的日志文件问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-05-05
  • Linux 在线安装软件 gcc在线安装的操作方法

    Linux 在线安装软件 gcc在线安装的操作方法

    今天小编就为大家分享一篇Linux 在线安装软件 gcc在线安装的操作方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07
  • CentOS7下 Apache的安装配置方法

    CentOS7下 Apache的安装配置方法

    前些天安装了Nginx,为了好玩我就又安装Apache,Apache的安装还算顺利。在此做一下学习记录和经验分享,需要的朋友可以参考下
    2017-11-11

最新评论