Linux

关注公众号 jb51net

关闭
首页 > 网站技巧 > 服务器 > Linux > Linux查看文件并过滤空行

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

作者:会飞的土拨鼠呀

这篇文章主要介绍了在Linux中查看文件并过滤空行的多种方法,包括使用grep、sed、awk等工具,这些方法可以根据具体需求选择使用,其中grep是最简单常用的方法,下面小编为大家详细说说,需要的朋友可以参考下

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

方法 1:使用 grep

grep -v '^$' filename

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

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

方法 2:使用 sed

sed '/^$/d' filename

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

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

方法 3:使用 awk

awk 'NF' filename

显示行号:

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

方法 4:使用 cat + grep

cat -s filename | grep -v '^$'

方法 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查看文件并过滤空行内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文