Match des lignes vides dans un fichier Grep
Pourquoi ne
grep -c '^\n' myfile.txt
return 0 quand il y a des lignes vides dans le fichier?
Si il y a une ligne vide, il commence avec une nouvelle ligne droite?
S'il vous plaît Corrigez-moi si je me trompe.
Vous devez vous connecter pour publier un commentaire.
L'expression régulière correspondant à la fin de la ligne est
$
, pas\n
(depuisgrep
travaux d'une ligne à un moment, il ignore les sauts de ligne entre les lignes).$
est la RÉ caractère pour correspondre à la fin d'une chaîne, pas la fin d'une ligne. grep arrive juste à traiter chaque ligne d'entrée comme une chaîne distincte de la sorte avec grep chaque fin de chaîne ($
) se produit lorsque la ligne a pris fin, mais d'autres outils se comportent différemment.$
signifie toujoursthe end of the string
dans tous les outils si.The regular expression to match the end of the line is $
etgrep ... ignores the newlines between lines
ce que j'ai ressenti pourrait facilement être mal compris.grep et de compter les lignes vides comme ceci:
Comme
\n
est considéré comme la fin de la ligne, vous devez utiliser la ligne de début et de fin de ligne"^$"