Используя только 1 командную строку, как мне написать команду, которая создаст длинный список всех файлов в каталоге storage/file и передаст вывод команде grep, которая находит все элементы, содержащие слово pizza?

Было бы это?

ls -l /storage/file | grep pizza

2 ответа2

3

Ну вот:

grep -l pizza /storage/file/*

Это напечатает имена всех файлов в /storage/file/ которые содержат слово pizza.

Если вы хотите длинный список этих файлов, вы можете сделать любой из них:

ls -l $(grep -l pizza /storage/file/*)
grep -l pizza /storage/file/* | xargs ls -l
0

Всегда есть твой друг команда find .

find /storage/file -name '*pizza*' -exec ls -l {} \;

Обратите внимание на одинарные кавычки вокруг имени, чтобы предотвратить слишком быстрое расширение оболочки. Эта форма имеет бонус, который легко адаптируется к просмотру указанных файлов:

find /storage/file -name '*pizza*' -exec grep cheese {} \;

Это находит все файлы, названные с пиццей в их имени файла, а затем показывает все места, где они упоминают сыр.

Или вы имели в виду просто найти все файлы, в которых говорится о пицце, в каталоге, а затем перечислить их?

ls -l $(grep -l pizza /storage/file/*)

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