Dlaczegomeczowe puste linie w pliku grep
grep -c '^\n' myfile.txt
return 0 gdy są puste wiersze w pliku?
Jeśli jest pusta linia, zaczyna się od nowej linii w prawo?
Proszę, popraw mnie, jeśli się mylę.
Dlaczegomeczowe puste linie w pliku grep
grep -c '^\n' myfile.txt
return 0 gdy są puste wiersze w pliku?
Jeśli jest pusta linia, zaczyna się od nowej linii w prawo?
Proszę, popraw mnie, jeśli się mylę.
Wyrażenie regularne pasujące do końca linii jest $
, a nie \n
(od grep
działa po linii, ignoruje znaki nowej linii między wierszami).
grep -c '^$' myfile.txt
grep i liczyć puste linie takie jak to:
grep -c "^$" myfile.txt
Jak \n
jest uważany za koniec linii trzeba użyć linia początek i koniec linii "^$"
Dzięki! Pomogło. –
OK. Rozumiem. Nie wiem, że grep ignoruje nowe linie między liniami. Dzięki!! –
Aby być precyzyjnym, '$' jest znakiem RE dopasowanym do końca ciągu, a nie do końca linii. grep po prostu traktuje każdy wiersz wejściowy jako osobny ciąg, tak więc grep kończy się na każdym końcu łańcucha ('$'), gdzie linia się zakończyła, ale inne narzędzia zachowują się inaczej. '$' zawsze oznacza 'koniec ciągu' we wszystkich narzędziach. –
@EdMorton W kontekstach, w których nie może być wielu linii, EOL i EOS są równoważne. Wszystko, co przetwarza tylko jedną linię na raz, jest tym kontekstem. – Barmar