2015-12-07 3 views
-1

Я надеялся передать stdout меньше на stdout, чтобы командовать меньше. Нравится так: auval -a | less | grep App | lessless command in unix pipe

Я использовал это для целей отладки/обучения и нашел бы его ценным. Я слышал, что меньше не было сделано для этого. Есть ли инструмент для этого на месте, для использования сегодня?

+1

Первый ' меньше' бессмысленно. Если 'less' выводит на канал вместо терминала, он просто пропускает все без изменений. Кроме этого, все в порядке; Я использую 'less' (или' more') после 'grep' и' awk' и 'sed' и других пользователей все время. ... Тем не менее, этот вопрос принадлежит SuperUser. –

+0

Привет @honkyblood, не могли бы вы выбрать ответ и пометить его принятым, чтобы положить закрытие на свой вопрос? Спасибо – zedfoxus

ответ

1

Если вы хотите отлаживать, вы можете сделать это:

auval -a > output1.txt && grep App output1.txt | less 

Таким образом, если вы не получаете то, что вы хотите от grep, вы можете проверить файл output1.txt в другой оболочке или сделать tail -f output1.txt перед запуском вашей команды.

Я согласен с Sebastien, что вам не нужно меньше после auval -a. Его предложение - это то, на что я тоже стою.

1
auval -a | grep App | less 

Я не понимаю, почему вы трубу меньше, прежде чем Grep

+0

Вместо менее хорошего слова для команды, которую я ищу, является 'pause'. Это приостановит выполнение до возобновления вручную. 'auval -a | grep App | меньше | пауза | grep pp | less' и выполнение замерзает при паузе. – honkyblood

+0

Вы, кажется, неправильно понимаете, как работает оболочка unix. pause - это команда, аналогичная kill и не работающая в предлагаемом потоке потока из вашего комментария выше. Возможно, вам стоит взять книгу о системном программировании Unix или сценариях bash. Удачи! – Sebastien

0

Вы можете использовать tee, что вилы свой вывод в заданный файл и на стандартный вывод, используя текущий терминал в качестве выходного файла даст вам желаемый результат:

auval -a | tee /dev/tty | grep App | less