Как отобразить вывод команды и передать ее следующей команде?

Si desea grepear un patrón en todos los archivos de un directorio. Puedes hacerlo con el comando grep mismo.

ejemplo:

grep -Hnr "pattern" folderPath

Avíseme si esto es lo que está buscando.

1
04.07.2019, 11:53
2 ответа

В оболочке bashвы можете использовать teeс подстановкой процесса, подобной этой:

command1 --option1 --option2 | tee >( jq -e '.returnCode' )

Это запишет вывод command1в tee, что дублирует его на стандартный вывод, а также на стандартный ввод jq.

Вы также можете

command1 --option1 --option2 | tee /dev/stderr | jq -e '.returnCode'

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

3
27.01.2020, 23:41

| tee /dev/tty |будет записывать стандартный ввод в консоль (на большинстве систем ), продолжая передавать его в качестве стандартного вывода следующей команде.

Иногда вы можете предпочесть /dev/stderrвместо этого писать стандартную ошибку. Конкретно для jq этого может быть достаточно:

| jq 'stderr |...' 

Функцияstderr/0записывает свои входные данные в стандартную ошибку и передает их следующему фильтру. Однако он отформатирует объект (сжато, без выделения ), так что это может быть или не быть тем, что вы хотите.

1
27.01.2020, 23:41

Теги

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