Поиск файлов с определенным символом во второй позиции в имени

Решение:

| xargs -I{} sed '{}q;d' /var/log/some.log

См. Как получить n -ю строку из файла

Комментарий:

Возможно, вы могли бы сократить длинную последовательность каналов (, включая последний шаг ), написав более сложную команду sed, awkили perl:

perl -lane 'print $F[9] if /01\/01/ and /some/ and $F[9]!~/200/' /var/log/some.log

0
16.03.2020, 08:35
1 ответ

find -nameможет работать с ??11*или ??52*. Это не регулярное выражение, но этого может быть достаточно.

find. -name '??11*' -o -name '??52*'

Примечание ?может соответствовать цифре, отличной от -. Чтобы сопоставить цифру, используйте [0123456789]. Формы [[:digit:]]или [0-9]полезны в целом, но зависят от локали -. Я точно вижу, что рассматриваемые имена файлов используют 0123456789, поэтому [0123456789]— лучший выбор. Примеры:

find. -name '[0123456789][0123456789]11*' -o -name '[0123456789][0123456789]52*'
# or
LC_ALL=C find. -name '[0-9][0-9]11*' -o -name '[0-9][0-9]52*'

Однако среди предоставленных вами имен файлов нет ни одного совпадения.

1
28.04.2021, 23:20

Теги

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