Отладчик для команд unix pipe - PullRequest
4 голосов
/ 15 сентября 2008

Когда я собираю * nix piped команды, я обнаруживаю, что хочу увидеть результаты одного этапа, чтобы проверить правильность перед построением следующего этапа, но я не хочу перезапускать каждый этап. Кто-нибудь знает программу, которая поможет с этим? Было бы автоматически сохранять выходные данные последнего этапа для использования на любых новых этапах. Обычно я делаю это, отправляя результат каждой команды во временный файл (т. Е. Выполняйте или запускайте каждую команду по одному), но было бы неплохо, чтобы программа справилась с этим.

Я представляю что-то вроде интерфейса с вкладками, где каждая вкладка помечена каждой командой конвейера, а при выборе вкладки отображается результат (не менее ста строк) применения этой команды к предыдущему результату.

Ответы [ 4 ]

5 голосов
/ 15 сентября 2008

Используйте 'tee', чтобы скопировать промежуточные результаты в некоторый файл, а также передать их на следующий этап конвейера, например:

cat /var/log/syslog | tee /tmp/syslog.out | grep something | tee /tmp/grep.out | sed 's/foo/bar/g' | tee /tmp/sed.out | cat >>/var/log/syslog.cleaned
2 голосов
/ 15 сентября 2008

Вы также можете использовать каналы, если вам нужна двунаправленная связь (т.е. с netcat):

mknod backpipe p
nc -l -p 80 0<backpipe | tee -a inflow | nc localhost 81 | tee -a outflow 1>backpipe

( с помощью )

1 голос
/ 15 сентября 2008

В репозиториях debian / ubuntu также есть команда "pv", которая показывает пропускную способность ваших каналов.

Пример со страницы руководства: Перенос файла из другого процесса и передача ожидаемого размера в pv:

          cat file | pv -s 12345 | nc -w 1 somewhere.com 3000
1 голос
/ 15 сентября 2008

tee (1) ваш друг. Он отправляет свои данные как в указанный файл, так и в стандартный вывод.

Вставь его между труб. Например:

ls | tee /tmp/out1 | sort | tee /tmp/out2 | sed 's/foo/bar/g'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...