поиск по шаблонам mysql - PullRequest
0 голосов
/ 30 марта 2011

Я пытаюсь выполнить поиск в filenmae с помощью grep, но у меня возникла некоторая проблема ..

Я хочу поиск по шаблонам

'apple banana'

Find rows that contain at least one of the two words.

'+apple +juice'

Find rows that contain both words.

'+apple macintosh'

Find rows that contain the word “apple”, but rank rows higher if they also contain “macintosh”.

'+apple -macintosh'

Find rows that contain the word “apple” but not “macintosh”.

'+apple ~macintosh'

Find rows that contain the word “apple”, but if the row also contains the word “macintosh”, rate it lower than if row does not. This is “softer” than a search for '+apple -macintosh', for which the presence of “macintosh” causes the row not to be returned at all.

'+apple +(>turnover <strudel)'

Find rows that contain the words “apple” and “turnover”, or “apple” and “strudel” (in any order), but rank “apple turnover” higher than “apple strudel”.

'apple*'

Find rows that contain words such as “apple”, “apples”, “applesauce”, or “applet”.

'"some words"'

Find rows that contain the exact phrase “some words” (for example, rows that contain “some words of wisdom” but not “some noise words”). Note that the “"” characters that enclose the phrase are operator characters that delimit the phrase. They are not the quotation marks that enclose the search string itself.

Первое правило: grep "apple \ | banana" имя файла

Другие правила вызывают проблемы. Помогите мне, пожалуйста, извините за плохой английский.

1 Ответ

0 голосов
/ 30 марта 2011

Вы не можете делать оценки с помощью grep, поэтому эти примеры потребуют дополнительной логики.Другие примеры можно решить с помощью оператора or и квалификаторов?, * И +.Вот пара примеров нужных вам регулярных выражений:

wesbailey@feynman:~/tmp> cat file.txt 
apple strudel
apple other txt
apple macintosh other text
macintosh other txt
other text strudel

Fnd строк, которые содержат хотя бы одно из двух слов:

wesbailey@feynman:~/tmp> grep -E 'apple|strudel' file.txt 
apple strudel
apple other txt
apple macintosh other text
other text strudel

Поиск строк, содержащих оба слова:

wesbailey@feynman:~/tmp> grep -E '(apple.*macintosh)|(macintosh.*apple)' file.txt 
apple macintosh other text

Поиск строк, содержащих слово «яблоко», но не «macintosh»:

wesbailey@feynman:~/tmp> grep -E 'apple' file.txt | grep -v 'macintosh'
apple strudel
apple other txt

Поиск строк, содержащих точную фразу «некоторые слова»

grep '"some words"' file.txt

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...