Работы Grep, когда я использую, с ls |
но когда я пробую команду отдельно, она просто дает мне мерцающий курсор, который никогда не уходит на следующей строке (как будто она выполняет команду).
Например, я попробовал:
ls | grep zip
в то время как в bin
каталог и получил список файлов, но плоскость grep zip
в том же каталоге дает мне вышеизложенную проблему.
От man grep
(выделено мной):
grep searches the named input FILEs (or standard input if no files are
named, or if a single hyphen-minus (-) is given as file name) for lines
containing a match to the given PATTERN. By default, grep prints the
matching lines.
Если вы запустили grep
без имени файла или канала ( |
в ls | grep
):
grep foo
Стандартный ввод - это терминал, то есть вы. Вы должны предоставить ввод, который grep
будет искать.
$ grep foo
this is me typing stuff
now I'm typing foo, which will get printed again because grep matched foo
now I'm typing foo, which will get printed again because grep matched foo
grep
принимает файл или (файлы) в качестве входных данных, если имя файла не указано given grep
читает из стандартного ввода (файловый дескриптор 0).
Когда вы выполняете ls | grep 'something'
, вы перенаправляете стандартный вывод команды ls
на стандартный ввод grep
через канал (это то, что делает |
).
В то время как в последнем случае, когда вы просто выполняете grep 'something'
, имя файла не указывается, и, следовательно, grep
будет читать его STDIN для ввода, здесь канал не используется, поэтому вам нужно ввести что-то в STDIN (ввести ввод), чтобы увидеть результат.
Пример:
% grep 46
245
480
460
460
Как видите, grep
сопоставил 46
из моего набранного содержимого и показал это на STDOUT. Кстати, чтобы закрыть сеанс интерактивного ввода, нажмите Ctrl + D , который указывает EOF (конец файла) (в данном случае прочтите его как «Конец ввода»).
grep не используется для поиска файлов в Linux. Вы можете использовать команду find для поиска файлов. Команда grep может использоваться для поиска текста внутри файлов.
Если вы хотите найти файлы с именем zip внутри каталога / bin, используйте команду поиска ниже find / bin -name " zip "
Я использовал * перед и в конце, так как файлы могут быть как gunzip, bzip, gzip. Итак, для поиска всего, что соответствует zip-слову, я использовал *.
Прочтите две статьи ниже о том, как использовать команду grep и команду поиска по отдельности. Было бы полезнее. https://screwlinux.com/how-to-use-grep-command-in-linux/ https://screwlinux.com/find-command-in-linux-with-examples/ Спасибо.