匹配Grep文件中的空行

时间:2013-09-02 05:25:52

标签: regex shell unix grep

为什么

grep -c '^\n' myfile.txt 
当文件中有空行时,

返回0
如果有一个空行,它会以新行开头吗?
如果我错了,请纠正我。

3 个答案:

答案 0 :(得分:37)

与行尾相匹配的正则表达式为$,而不是\n(因为grep一次处理一行,它会忽略行之间的换行符。)

grep -c '^$' myfile.txt

答案 1 :(得分:4)

grep并计算这样的空行:

grep -c "^$" myfile.txt

由于\n被视为行尾,您需要使用行开头和行结束"^$"

答案 2 :(得分:0)

其他带有 -c 的答案是正确的。

如果你想看看文件中的空行是多少:

grep -n '^$' myfile.txt

例如:

grep -n '^$' /usr/share/wordlists/rockyou.txt
4751:
34329:
50383:
99361:
154363:
231236:
562997:
2459758:
14344383:
14344384:
14344385:

(如果您想删除它们:sed -i '/^$/d' myfile.txt

:)