Jaki jest odpowiednik „wc -l” w systemie Windows?


52

Co to jest odpowiednik polecenia Linux / Unix w systemie Windows wc -l?

Zasadniczo, jak policzyć liczbę linii wyprowadzanych z polecenia w wierszu poleceń systemu Windows?


Możesz także użyć narzędzi GnuWin32 i faktycznie mieć wc(cóż, wc.exe...) gnuwin32.sourceforge.net
ivanivan

Odpowiedzi:


65

Polecenie „liczba linii” w systemie Linux / Unix wc -lma odpowiednik systemu Windows find /c /v "".

Jak to działa?

Według Raymonda Chena z The Old New Thing odtąd funkcjonuje jako taki

Jest to specjalne dziwactwo findpolecenia, że ​​ciąg zerowy jest traktowany jako nigdy nie pasujący.

W ten sposób funkcja inverted ( /v) count ( /c) skutecznie zlicza wszystkie linie; stąd liczba linii.

Przykładowe użycie

Aby policzyć liczbę zmodyfikowanych plików w kopii roboczej Subversion:

svn status -q | find /c /v ""

Takie polecenie może zostać użyte do oznaczenia kompilacji jako „brudnej”, jeśli nie jest to liczba 0, tzn. W kopii roboczej występują niezatwierdzone zmiany.

Aby uzyskać liczbę wierszy wszystkich plików Java:

(for /r %f in (*.java) do @type "%f") | find /c /v ""

W find /c /v ""razie potrzeby polecenie można również dodać do pliku wsadowego. Pamiętaj, aby powielić %znaki w plikach wsadowych.


PowerShell

Działający odpowiednik PowerShell wymaga Measure-Object -linedodatkowego formatowania, np. (Lista katalogów dla uproszczenia),

(ls | Measure-Object -line).Lines

1
Dzięki za udostępnienie. Utworzono listę referencyjną - gist.github.com/a4ede7054b2ce5ee2708dd49bbd5a1a1
maheshwaghmare

11

W programie PowerShell, aby uzyskać liczbę wierszy wszystkich plików Java:

type *.java | Measure-Object -line

3
witamy w superużytkowniku: - pytanie dotyczyło CMD, a nie PowerShell, jeśli możesz odpowiedzieć PO, zredaguj swoją odpowiedź. te mogą pomóc Jak odpowiedzieć , jak zapytać , Centrum pomocy ponownie witamy u superuera i mam nadzieję, że wrócisz, dziękuję
mic84

9
Dzięki @ mic84. Pytanie dotyczy wiersza poleceń systemu Windows. Microsoft próbuje zastąpić CMD programem PowerShell: networkworld.com/article/3143196/windows/... To jest dość przydatna odpowiedź.
user3808394,

-2

findstr / n / r.

Jest to ograniczona regex, więc / n pokazuje numer linii dopasowania, a „.” pasuje do dowolnego znaku.


2
Pytanie nie dotyczy sposobu wyświetlania pliku z numerami linii; pytanie brzmi, jak określić liczbę wierszy w pliku.
Scott

Spójrz na numer ostatniej linii i tyle jest linii w pliku. Polecenie „znajdź” również działa, ale w niektórych przypadkach może się przydać findstr. Znalazłem to.
Gary Gatten

To nie jest bardzo przyjazna dla użytkownika odpowiedź, szczególnie biorąc pod uwagę, że otrzymaliśmy kilka innych odpowiedzi, które są bardziej bezpośrednie. Ale jeśli to twoja odpowiedź,  edytuj  ją, aby była jaśniejsza i bardziej kompletna.
Scott
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.