GNU/Linux >> Znalost Linux >  >> Linux

wc -l NEpočítá poslední soubor, pokud nemá znak konce řádku

Je lepší, aby všechny řádky končily EOL \n v souborech Unix. Můžete:

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

Nebo toto awk:

awk 'END{print NR}' file

grep -c vrátí počet odpovídajících řádků. Stačí použít prázdný řetězec "" jako váš odpovídající výraz:

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

Linux
  1. Opravit repozitář nemá soubor s vydáním Chyba v Ubuntu – průvodce krok za krokem?

  2. Proč regulární výraz funguje v X, ale ne v Y?

  3. Číst řádkově orientovaný soubor, který nemusí končit novým řádkem?

  1. Proč překladový soubor Bash neobsahuje všechny chybové texty?

  2. Jak příkaz Sed ‚1!g;h;$!d‘ obrátí obsah souboru?

  3. Přejít na začátek nebo konec souboru ve Vimu [Rychlý tip]

  1. Jak mohu smazat nový řádek, pokud je to poslední znak v souboru?

  2. Připojení řádku k souboru pouze v případě, že ještě neexistuje

  3. Bash:přidejte řetězec na konec souboru bez zalomení řádku