Я пытаюсь подсчитать количество строк после проблемной строки в CSV-файле. Я знаю, что могу использовать grep -a #
синтаксис для вывода # количества строк после того, как найдено совпадение. Меня интересует только фактическое количество строк. Я понимаю, что могу установить значение MAX_INT, передать его в файл и выполнить дополнительную обработку.
Я ищу краткую строчку, чтобы просто сказать мне количество.
Какие-либо предложения?
grep -m1 match >/dev/null
конечно. И ваша вторая проблема - GNUsed
- он не сбрасывает свое входное смещение согласно спецификации. Вы должны использовать-u
w / GNU - что не всегда желательно. Я мог бы быть более понятным, но я предполагал, что GNUgrep
и GNUsed
будут приходить парами. Я думаю, что такжеgrep -qm1
может работать для сокращения/dev/null
перенаправления - но GNUgrep
делает странные вещи,-q
и я не могу вспомнить, как эти два работают вместе.wc -l
что это немного дешевле, чемgrep -c ''
.Вот один из способов.
источник
Другой способ - использование
dc
немного эзотерично, но, похоже, хорошо работает здесь:sed
ищетprob.txt
«проблему» и последнюю строку и использует=
команду для вывода номера строки обоих.dc
читает эти два значения в стек, переворачивает их, вычитает и выводит разницу.источник
Целиком с sed (хотя две команды с трубкой)
Удаляет все строки перед строкой, а затем следующая команда считает строки в новом файле.
источник
Это должно удалить все строки до (и включая) проблемной, а затем подсчитать оставшиеся строки:
источник