开发者

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

目录
  • 方法 1:使用 grep
  • 方法 2:使用 sed
  • 方法 3:使用 awacUNck
  • 方法 4:使用 cat + grep
  • 方法 5:使用 printf 或 echo 测试
  • 高级技巧:保留格式同时过滤空行
    • 带行号显示
    • 处理多文件
    • 编辑文件时删除空行
    • 统计非空行数
  • 处理特殊文件
    • 永久配置忽略空行
      • 实际应用示例

        在 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 'http://www.devze.com^[[: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: acUNc   
        	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:]]*$android'awk 'NF' 则更全面,能够过滤掉所有空白行。

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

        0

        上一篇:

        下一篇:

        精彩评论

        暂无评论...
        验证码 换一张
        取 消

        最新运维

        运维排行榜