bash - 检查文件中的空行

标签 bash file unix

我这里没有代码示例,因为我完全不确定如何执行此操作,但我有一个文件。合法的空行是只包含换行符的行。空格或制表符是非法的。

如何检查一行是否“合法为空”?

如果它没有任何单词(我可以使用 wc -w 检查它),我如何检查它是否没有空格或制表符,只有换行符?

所以我尝试过这样的事情:

while read line; do
    if [[ "$line" =~ ^$ ]]; then
        echo empty line
        continue
    fi
done < $1

但它不起作用。如果我在一个空行中放置一个“”,它仍然认为它是空的。

最佳答案

如果你想要那些空行的行号:

perl -lne 'print $. if(/^$/)' your_file

如果你想在没有 Perl 的情况下删除那些行:

grep . your_file >new_file

如果你想使用 Perl 删除那些空行:

perl -i -lne 'print if(/./)' your_file

关于bash - 检查文件中的空行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20785564/

相关文章:

sql - SQL*Plus 是否有 less 的等价物?

bash - echo -e 在 ubuntu 上由 root 在脚本中运行时表现不同

regex - 使用 grep 查找动态文本

linux - 对 shell 中的一些标准输入或 heredoc 用法感到困惑

bash - 用 bash 解析 ICS 文件

c - 无限循环/段错误

php - $_FILES 什么都不返回

unix - Unix 中的挂钟时间、用户 CPU 时间和系统 CPU 时间具体是什么?

linux - bash -错误 : Syntax error: operand expected (error token is "testdir/.hidd1/")

linux - 插入街道 sed