Как найти строковый шаблон в текущем каталоге [закрыто]

Я хочу идентифицировать строку, предоставленную в качестве аргумента в командной строке. Мне нужно искать только в текущем каталоге и архивах. моя команда:

if grep -s "$1" * .* 
then echo "found" else echo "not found"

Но для Например, если у меня есть одна папка со словом «отец», а другая - с «отцом», а строковый ввод - «отец», мой код выводит обе папки. Но если мой ввод - «отец» (отец и пространство), вывод должен быть только первая папка, но мой код отображает обе папки. Что мне делать вместо этого? Также достаточно ли этой команды для поиска по всем папкам и архивам из моего текущего каталога? Изменить: я использую Рабочий стол Ubuntu (Ubuntu 12.04.4 LTS)

Я также пробовал grep -w , но моя строка не совсем фиксированная строка, это на самом деле шаблон, так что это не совсем то, что я хотел. «fa» мой код должен выводить все папки, содержащие структуры «fa», такие как «отец», «жир» и так далее, но если мой ввод будет «fa» с пробелом, моим выводом должны быть только папки с «fa» и только что

-1
задан 6 May 2020 в 21:25

1 ответ

использовать grep -w

-w, --word-regexp
Выбирать только те строки, которые содержат совпадения, образующие целое слова.

Также вы можете использовать -q . И если у вас есть фиксированная строка, а не шаблон, добавьте -F , чтобы grep работал намного быстрее!

Ваша команда не будет искать рекурсивно.

1
ответ дан 19 June 2020 в 22:18

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

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