1

Я пытаюсь вывести строку, содержащую определенный шаблон, расположенный в специально названных файлах в неструктурированной директории наемного архива. Каждый интересующий меня файл называется "foo.xml". Интересующий меня шаблон выглядит следующим образом: <digit><digit>T<digit><digit> (как регулярное выражение PERL: \d\dT\d\d). Я хочу вывести всю строку, которая соответствует этому шаблону (даже дополнительные элементы в этой строке, которые не соответствуют шаблону).

Где я нахожусь:

find . | grep foo.xml выполненный в "корне", дает мне список файлов, которые я хочу сканировать.

Что мне делать отсюда?

Я бы предпочел сделать это в командной строке. Я мог бы легко написать скрипт на PERL, но, вероятно, есть действительно простой способ сделать это.

2 ответа2

1

В качестве альтернативы, поскольку вы упомянули PERL, вы можете использовать опцию grep -perl-regexp:

find . -name foo.xml -exec grep -P '\d\dT\d\d' '{}' \;

Прекрасная особенность, если вы привыкли к регулярным выражениям Perl.

1

Вы можете попробовать что-то вроде:

find . -name foo.xml -exec grep REGEX '{}' \;

редактировать В вашем случае REGEX

'[0-9][0-9]T[0-9][0-9]'

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .