Comment puis-je compter le nombre de lignes dans un fichier texte. par exemple :
command file.txt
Remarque, je veux seulement compter les lignes non vides (lignes sans compter les espaces blancs et les tabulations)?.
command-line
user93097373
la source
la source
\r
) ou les ignorer. Le courant répond à toutes les lignes de comptage avec des espaces et ne saute que les vides.\r
ou\n
), les lignes avec seulement des tabulations et les lignes avec seulement les espaces) et je veux les sauter comme je pense et y répondre selon Ce que j'ai compris.Réponses:
Les réponses ci-dessus sont correctes mais légèrement différentes, vous pouvez utiliser le
grep
pour un code plus facile telgrep -vc '^$' file.txt
Par exemple (A): file.txt
Par exemple (B): file.txt
Notez que le résultat est 4! quand on veut en attendre seulement deux. mais cela compte également les onglets entre le contenu et le commentaire.
Remarquez les nombres de 0 et les nombres de 1, c'est différent du grep au sed comme je me souviens pour plus de détails, recherchez grep ou sed.
la source
sed
option est en fait correcte, mais celle-grep
ci ne l'est pasEssayez
sed
:Si vous avez des lignes contenant uniquement des espaces ou des tabulations et si vous souhaitez également les ignorer du nombre:
la source
^\s*$
également prendre en compte les lignes contenant uniquement des tabulations ou des espaces.En utilisant
grep
:la source
Vous pouvez utiliser:
Si vous avez besoin d'une commande pour cela, collez simplement les lignes suivantes dans votre
.bashrc
et redémarrez votre session shell ou ouvrez un nouveau terminal:Exemple:
la source
Avec awk :
Explication:
Le
NF
indique le nombre total de champs, et donc cela n'imprime que les lignes non vides , car dans les lignes non videsNF
est supérieur à0
et s'évalue comme vrai. Incrémentez donc l' indicateur de comptage lorsque awk a trouvé une ligne non vide et imprimez la dernière valeur de l' indicateur de comptage à la fin deEND{print count}
.la source
Edit : vous pouvez simplement ajouter l'
c
option augrep
lieu de tout dirigerwc
, voir la réponse de @ muru pour une version plus compacteAvec
grep
:la source
Solution Perl
Perl peut le faire. En général, les lignes de comptage fonctionnent comme suit:
Si nous voulons exclure toutes les lignes vides, nous ferons quelque chose comme ceci:
Disons que nous avons un fichier d'entrée comme celui-ci
Il y a 5 lignes au total, 2 lignes vides. La commande que nous avons afficherait:
Amélioration multi-fichiers
Cela fonctionne bien pour un seul fichier. Si nous voulons le faire fonctionner sur plusieurs fichiers, nous pouvons faire quelque chose comme ceci:
la source