как выполнить поиск обоих файлов, но исключить другие файлы

autosshтакже доступен в репозитории epel:

# mkdir /usr/src/epel && cd "$_"
# wget http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-10.noarch.rpm
# rpm -ihv epel-release-7-10.noarch.rpm
# yum install autossh
0
20.07.2020, 15:22
2 ответа
grep log.retention.bytes server.log{,.1}

Чтобы записи журнала (добавлялись )в хронологическом порядке, вы можете изменить порядок файлов на противоположный:

grep log.retention.bytes server.log{.1,}

, что, конечно, эквивалентно:

grep log.retention.bytes server.log.1 server.log

, так как расширение скобок выполняется оболочкой перед выполнением команды grep.

Кроме того, с оболочкой zshвы можете легко автоматически подбирать для последних N файлов, соответствующих шаблону с:

grep log.retention.bytes server.log*(Om[-2,-1])

, где Omозначает порядок по убыванию mtime , а [-2,-1]выбирает 2 последние строки. Этот трюк стоит запомнить, если вы смотрите, чтобы искать больше файлов и не хотите набирать их вручную.

9
18.03.2021, 23:18

Самый простой способ выполнить grep в двух файлах — передать оба файла в grep:

grep log.retention.bytes /confluent/logs/server.log /confluent/logs/server.log.1

Когда у вас есть больше файлов, вы можете либо перечислить их все вручную, либо использовать шаблон, который соответствует только вашим конкретным файлам. Например, в bash:

shopt -s extglob
grep log.retention.bytes /confluent/logs/server.log?(.1)

Наконец, и, вероятно, самое простое в вашем случае, вы можете использовать раскрытие скобок, как показано в ответе Томаша .

4
18.03.2021, 23:18

Теги

Похожие вопросы