Есть ли опция grep, которая позволяет мне контролировать общее количество совпадений, но останавливается при первом совпадении в каждом файле?
Пример:
Если я сделаю это grep -ri --include '*.coffee' 're' .
, я получу это:
./app.coffee:express = require 'express'
./app.coffee:passport = require 'passport'
./app.coffee:BrowserIDStrategy = require('passport-browserid').Strategy
./app.coffee:app = express()
./config.coffee: session_secret: 'nyan cat'
И если я делаю grep -ri -m2 --include '*.coffee' 're' .
, я получаю следующее:
./app.coffee:config = require './config'
./app.coffee:passport = require 'passport'
Но мне действительно нужен этот вывод:
./app.coffee:express = require 'express'
./config.coffee: session_secret: 'nyan cat'
Выполнение -m1
не работает, поскольку я получаю это для grep -ri -m1 --include '*.coffee' 're' .
./app.coffee:express = require 'express'
Пробовал не использовать grep, например. это find . -name '*.coffee' -exec awk '/re/ {print;exit}' {} \;
:
config = require './config'
session_secret: 'nyan cat'
ОБНОВЛЕНИЕ: Как указано ниже, параметр GNU grep -m
обрабатывает количество отсчетов для каждого файла, тогда как -m
для BSD grep рассматривает его как глобальный счетчик совпадений