команда grep для текстового файла в нескольких каталогах

У меня есть 24 каталога в определенном каталоге (main_directory). Каждый 24 каталог имеет текстовый файл с именем DATA.txt.

Мне нужно использовать команду grep для извлечения ниже определенного шаблона для каждого текстового файла;

2* x  = 3800689.6402     y  = 882077.3636     z  = 5028791.2953

2* x = часть постоянна для всех DATA.txt. Другие числовые числа являются переменными. Мне нужно извлечь строку выше для каждого DATA.txt и сохранить их в другой текстовый файл. Какой сценарий я могу использовать для этого процесса?

4
задан 1 April 2016 в 09:58

3 ответа

Для рекурсивного поиска использования grep используйте -R опция.

Для поиска точной строки используйте -F, так, чтобы 2* не рассматривался как регулярное выражение.

Для поиска только на определенных именах файлов используйте --include опция. Объединенный:

grep -FR --include=DATA.txt '2* x' main_directory > another_text_file
0
ответ дан 1 April 2016 в 19:58
  • 1
    В то время как это, кажется, поддерживается для более старых моделей ThinkPad, я haven' t сталкиваются с любым сообщением, предлагающим, чтобы они работали на более новые модели ThinkPad (T460, T470). Прежде, чем купить ноутбук, я хочу удостовериться, что более новый ThinkPad позволяет пользователю управлять вентилятором (Dell Xps, например, doesn' t, кажется, делают это). – cosmo17 9 August 2017 в 18:30

Так как Вы знаете название конечных файлов, можно также сделать

grep '^2\* x' */DATA.txt > newfile

Или, с awk:

awk '^/2\* x/' */DATA.txt > newfile

И Perl:

perl -ne 'print if /2\* x/' */DATA.txt > newfile
0
ответ дан 1 April 2016 в 19:58

Общий подход:

grep -r <pattern>

или

определенный подход:

find -name <file patterns which you want to find> | xargs grep <pattern you looking for>
0
ответ дан 1 April 2016 в 19:58
  • 1
    Хорошо - работал, journalct1 - следуют. Кажется, что компьютер определил нано Wi-Fi. – Reilly Shaughnessy 10 August 2017 в 06:26

Другие вопросы по тегам:

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