【问题标题】:How to count number of non empty lines in a file using sed?如何使用 sed 计算文件中非空行的数量?
【发布时间】:2010-09-03 06:46:13
【问题描述】:

如何通过 sed 查找文件中有多少行 (需要忽略空格和空行)

例如

如果我有 139 行的文件(行只能包含一个字符) 那么 sed 应该返回 139

莉迪亚

【问题讨论】:

  • This page 说要做:sed -n '$='
  • @Seth:这只是wc -l,它不会像 OP 一样忽略空行。
  • @codaddict - 我会wc -l我自己;我不是 sed 人。

标签: bash shell sed


【解决方案1】:
sed '/^ *$/ d' filename | wc -l

这里,sed 在删除所有从头到尾有 0 个或多个空格的行后打印行。 wc -l 是统计这些行数。

【讨论】:

    【解决方案2】:

    这是grep 的工作,而不是sed

    <myfile grep -c '[^[:space:]]'
    

    【讨论】:

      【解决方案3】:

      你可以试试:

      sed -n '/[^[:space:]]/p' filename | wc -l
      

      这里sed 只打印至少有一个非空格字符的行,wc 计算这些行。

      【讨论】:

        【解决方案4】:

        使用 nawk 代替 sed。

        nawk 'NF{c++}END{print "total: "c}' file
        

        【讨论】:

          【解决方案5】:

          使用 Perl 单行:

          perl -lne '$count++ if /\S/; END { print int $count }' input.file
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2015-12-17
            • 1970-01-01
            • 2012-01-31
            • 2018-01-25
            • 1970-01-01
            • 2017-06-05
            • 2018-06-27
            • 1970-01-01
            相关资源
            最近更新 更多