2

Я использую Windows 7 и у меня есть GnuWin32. У меня есть текстовый файл объемом несколько гигабайт с LF (\n) окончаниями строк. Я хочу знать, сколько у него строк (или, альтернативно, сколько у него LF, скажем, на один меньше, но мне все равно). Какой самый быстрый или наименее дорогой способ получить мой ответ?

Некоторые возможности (хотя я уверен, что мне не хватает некоторых):

  • wc -l foo
  • grep -c $ foo-c выводит только количество совпадающих строк)
  • grep -c ^^ foo (первая каретка избегает второй)
  • sed -n $= foo (-n запрещает печатать строку; $ ограничивается последней строкой; = печатает номер строки)

(Это утилиты GnuWin32. Я не знаю ни одного родного способа для Windows.)

2 ответа2

3

Решение для командной строки Windows

type foo | find "" /v /c

Решения Powershell

(get-content foo | measure-object -line).lines

(dir foo | select-string .).count

(type foo).count

(gc foo | measure-object | select count).count

Perl Solution

perl -pe '}{$_=$.' foo

awk решение

awk 'END { print NR }' foo

дальнейшее чтение

0

Самым быстрым для меня является командная строка: find /v /c "" foo.txt

Мне еще предстоит сделать правильный тест, но я попробовал type и (get-content foo | measure-object -line) для файла 10 ГБ на оперативном сервере 2 ГБ, но они заняли слишком много времени для завершения. Найти однако вернулся достаточно быстро

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .