Я использую grep для извлечения строк в наборе файлов:
grep somestring *.log
Можно ли ограничить максимальное количество совпадений на файл? В идеале я бы просто распечатал n строк из каждого файла * .log.
Чтобы ограничить 11 строк на файл:
grep -m11 somestring *.log
Вот альтернативный способ симуляции с помощью awk:
awk
awk 'f==10{f=0; nextfile; exit} /regex/{++f; print FILENAME":"$0}' *.log
f==10 : f - это флаг, который мы устанавливаем и проверяем, равно ли его значение 10. Вы можете настроить его в зависимости от количества строк Вы хотите соответствовать.
f==10 :
f
nextfile : Перемещает обработку к следующему файлу.
nextfile :
exit : Вырывается из awk.
exit :
/regex/ : Вы ищете regex или pattern.
/regex/ :
regex
pattern
{++f;print FILENAME":"$0} : Мы увеличиваем флаг и печатаем имя файла и строку.
{++f;print FILENAME":"$0} :