GNU/Linux >> LINUX-Kenntnisse >  >> Linux

wc -l zählt NICHT zuletzt in der Datei, wenn es kein Zeilenendezeichen hat

Es ist besser, wenn alle Zeilen mit EOL \n enden in Unix-Dateien. Sie können Folgendes tun:

{ cat file; echo ''; } | wc -l

Oder dieses awk:

awk 'END{print NR}' file

grep -c gibt die Anzahl der übereinstimmenden Zeilen zurück. Verwenden Sie einfach einen leeren String "" als Ihren übereinstimmenden Ausdruck:

$ echo -n $'a\nb\nc' > 2or3.txt
$ cat 2or3.txt | wc -l
2
$ grep -c "" 2or3.txt
3

Linux
  1. Behebung des Fehlers „Das Repository hat keine Release-Datei“ in Ubuntu – Schritt-für-Schritt-Anleitung?

  2. Eine zeilenorientierte Datei lesen, die nicht mit einem Zeilenumbruch enden darf?

  3. Was bedeutet kaufmännisches Und am Ende einer Shell-Skriptzeile?

  4. Warum enthält die Bash-Übersetzungsdatei nicht alle Fehlertexte?

  5. Zum Anfang oder Ende der Datei in Vim gehen [Schneller Tipp]

So beheben Sie den Fehler „Das Repository hat keine Release-Datei“ in Ubuntu

Warum funktioniert der reguläre Ausdruck in X, aber nicht in Y?

Wie kehrt der Befehl Sed ‘1!g;h;$!d’ den Inhalt einer Datei um?

Eine Zeile nur an eine Datei anhängen, wenn sie noch nicht existiert

Bash:Zeichenfolge ohne Zeilenumbruch am Ende der Datei hinzufügen

Was bedeutet ein + am Ende der Berechtigungen von ls -l?