Я не уверен, возможно ли это в одной строке (т. Е. Без написания скрипта), но я хочу запустить команду ls | grep
, а затем для каждого результата передать ее другой команде.
Если говорить точнее, у меня есть каталог, полный изображений, и я хочу просмотреть только некоторые из них. Я могу отфильтровать интересующие меня изображения с помощью ls | grep -i <something>
, который выдаст список подходящих файлов. Затем для каждого файла я хочу просмотреть его, передав его в eog
.
Я пытался просто передать результаты в eog
примерно так:
eog $(ls | grep -i <something>)
Это не совсем работает, так как откроет только первую запись в списке результатов.
Итак, как мне выполнить eog FILENAME
для каждой записи в списке результатов без необходимости связывать эту операцию в сценарий?
Редактировать: Как предлагается в ответах, я могу использовать цикл for
следующим образом:
for i in 'ls | grep -i ...'; do eog $i; done
Это работает, но цикл ждет итерации, пока я не закрою открытый в данный момент экземпляр eog
.
В идеале я бы хотел, чтобы n
экземпляров eog
открывались сразу, где n
- количество результатов, возвращаемых моей командой ls | grep
. Это возможно?
Спасибо всем!