2013-09-02 4 views

risposta

32

L'espressione regolare per abbinare alla fine della linea è $, non \n (poiché grep funziona una riga alla volta, ignora le nuove righe tra le righe).

grep -c '^$' myfile.txt 
+0

Ok. Fatto. Non so che grep ignora le nuove righe tra le righe. Grazie!! –

+3

Per essere precisi, '$' è il carattere RE che corrisponde alla fine di una stringa, non alla fine di una riga. grep capita semplicemente di trattare ogni riga di input come una stringa separata, quindi con grep ogni fine di stringa ('$') si verifica dove finisce la linea ma altri strumenti si comportano diversamente. '$' indica sempre 'la fine della stringa 'in tutti gli strumenti. –

+1

@EdMorton In contesti in cui non possono esserci più righe, EOL ed EOS sono equivalenti. Qualunque cosa che elabora solo una riga alla volta è quel contesto. – Barmar

3

grep e contare le righe vuote come questo:

grep -c "^$" myfile.txt 

Come \n è considerato fine della linea è necessario utilizzare linea di partenza e di fine linea "^$"

+0

Grazie !! Ha aiutato. –