Wc
計算文件中沒有文本的行數
我現在使用 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.)