Wc

計算文件中沒有文本的行數

  • February 9, 2014

我現在使用 Ubuntu 13.10 有一段時間了,用 C++ 和 Python 程式。我有一些問題可以通過編寫程序來解決,但也許有更簡單的方法,所以這裡是第一個問題。

我可以grep用來查找帶有單詞/模式的行,然後wc用來計算它們:

grep word somefile | wc -l

如何計算沒有“文本”的行?那些為空的或只有空格或製表符的。

你的系統應該有 GNU grep,它有一個-P使用 Perl 表達式的選項,你可以使用它,結合-c(所以不需要wc -l):

grep -Pvc '\S' somefile

'\S'模式\S交給 grep 並匹配所有包含非空格-v的行,選擇所有其他行(只有空格的行)併-c計算它們。

從 grep 的手冊頁:

-P, --perl-regexp
      Interpret  PATTERN  as  a  Perl  regular  expression  (PCRE, see
      below).  This is highly experimental and grep  -P  may  warn  of
      unimplemented features.

-v, --invert-match
      Invert the sense of matching, to select non-matching lines.  (-v
      is specified by POSIX.)

-c, --count
      Suppress normal output; instead print a count of matching  lines
      for  each  input  file.  With the -v, --invert-match option (see
      below), count non-matching lines.  (-c is specified by POSIX.)

引用自:https://unix.stackexchange.com/questions/114326