Порядок для grep -r
обычно будет случайным (не обязательно алфавитным ), как правило, в зависимости от того, как файлы расположены в каталоге и какой возможный порядок -может сделать ваша реализация grep
для оптимизировать обход каталогов.
Здесь, с GNU grep
2.25:
$ grep -r..
./4/c:c
./1/b:b
./2/a:a
./10/d:d
Если вам нужен определенный порядок, вы должны отказаться от -r
и указать список файлов в качестве аргументов в нужном вам порядке.
Например, в вашем случае и при использованииzsh
:
$ grep -H../**/*(D.On)
./4/c:c
./2/a:a
./1/b:b
./10/d:d
Здесь используется On
для обратного порядка по имени . Вы можете добавить квалификатор n
для числовой сортировки :
$ grep -H../**/*(D.nOn)
./10/d:d
./4/c:c
./2/a:a
./1/b:b
(-H
является еще одним расширением GNU grep
, чтобы гарантировать, что имя файла всегда печатается, даже если есть только один файл. С другой реализацией grep
вы можете добавить дополнительный пустой файл в качестве аргумента, например /dev/null
, чтобы убедиться, что grep
передается по крайней мере два имени файла ).
Это также очень полезно дляzgrep
ротации файлов журналов в хронологическом порядке (, например access.log.10.gz
... access.log.2.gz
, access.log.1
,access.log
)с:
zgrep something access.log*(nOn)
(хотя вы также можете сортировать по времени последней модификации с помощью zgrep something access.log*(Om)
, если на них можно положиться ).
Вы не можете устанавливать пакеты Debian на macOS.
Однако вы можете использовать что-то вроде Homebrew и вместо этого установить стороннее -программное обеспечение. Homebrew — широко используемый менеджер пакетов в системах macOS, предоставляющий широкий спектр пакетов. Однако обратите внимание, что имена пакетов могут отличаться от имен пакетов в Debian, и нет никакой гарантии, что часть программного обеспечения, которое вы найдете в Debian, существует в Homebrew для macOS.
См. также документацию Homebrew .