Как я могу найти слово под названием "Onderh"? Расширенный поиск я хотел бы сделать, например: начальная строка с "Onderh" или строка, содержащая "Onderh".

Примечание. Локальный каталог резервного копирования, содержащий каждый день снимок MySQL «database.sql (размер файла: 81902272)». Внутри этого файла мне нужно применить поиск.

[me@www win]$ ls
2011-03-01  2011-03-04  2011-03-07  2011-03-10  2011-03-13  2011-03-16  2011-03-19  2011-03-22  2011-03-25  2011-03-28  2011-03-31  2011-04-03  2011-04-06
2011-03-02  2011-03-05  2011-03-08  2011-03-11  2011-03-14  2011-03-17  2011-03-20  2011-03-23  2011-03-26  2011-03-29  2011-04-01  2011-04-04  2011-04-07
2011-03-03  2011-03-06  2011-03-09  2011-03-12  2011-03-15  2011-03-18  2011-03-21  2011-03-24  2011-03-27  2011-03-30  2011-04-02  2011-04-05  2011-04-08

[me@www 2011-04-08]$ ll
total 80092
-rw-r--r--  1 root root 81902272 Apr  8 01:00 database.sql
drwxr-xr-x 99 root root    12288 Apr  8 01:00 etc
drwxr-xr-x  4 root root     4096 Apr  8 01:00 home
drwxr-xr-x 10 root root     4096 Apr  8 01:00 html
drwxr-xr-x 14 root root     4096 Apr  8 01:00 postfixadmin-2.3

2 ответа2

1

Если это текстовые файлы, вы можете использовать grep с флагом regex.

grep -R -E "^Onderh" *
grep -R "Onderh" *

Первый будет искать строку, начинающуюся с onderh, второй для всех строк, содержащих его.

1

Если вы хотите проверить все эти каталоги, попробуйте:

[me@www win]$ grep -n ^Onderh */database.sql

чтобы найти строки (флаг -n показывает номер строки), начиная с Onderh. ^ - это специальный символ для привязки совпадения к началу строки - избавьтесь от него, если хотите найти его где-нибудь в строке.

Ack также стоит изучить, если у вас есть более сложные требования. Например, если интересующие вас sql-файлы не были так хорошо организованы, ack сможет искать только внутри .sql-файлов во всей структуре каталогов.

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