2016-07-16 203 views
0

我對這樣一個基本問題表示歉意,但我試圖用awk來計算文本文件中的空行數。這不是一項家庭作業。 Windows 10. Gawk 4.1.3用awk在文件中查找空行

BEGIN { x=0 } 
/^$/ { x=x+1 } 
END { print "I found " x " blank lines." } 

輸出總是:我發現0個空行。

謝謝。

+2

您的解決方案適用於我。你還認爲僅有空白的行是空白的嗎? – eush77

+2

gawk'NF == 0 {x ++} END {print「我找到了」x「空白行。」 }'文件 – Chet

+1

因爲它按照eush77工作,所以它可能只是一個行結束符問題。也許嘗試先通過'dos2unix'管道。 – matz

回答

4

該命令應該可以工作,但您可以跳過x的初始化。 awk會自動爲你做。您可以使用NF變量進行檢查,如果它是0,則該值爲false該行爲空。此外,我建議使用printf

!NF {x++} 
END {printf "I found %d blank lines\n", x} 

順便說一句,你可以簡單地使用grep

grep -ch '^$' file 

-c只輸出出現的次數發現,-h取消文件名的輸出。

使用命令替換的輸出插值爲echo聲明:

echo "I found $(grep -ch '^$' file) blank lines" 
1

除了你已經得到了很好的解決方案的awk,sed的解決辦法是

sed -n '/^$/p' file |wc -l 

這裏-n禁止顯示正常輸出,p打印行空白的行 - (^$)。 wc -l計算如此打印的總行數。