Видите живые результаты выражения командной строки в терминале? - PullRequest
0 голосов
/ 30 октября 2018

Я часто создаю длинную команду bash или zsh, которая сама по себе недостаточно длинна, чтобы быть сценарием сама по себе. Например, когда я отлаживаю выражение sed, я часто меняю один символ и перезапускаю команду, чтобы посмотреть, как изменится вывод:

$ echo "123 eyes on me" | sed -E 's/[[:alnum:]*]//'
23 eyes on me
$ echo "123 eyes on me" | sed -E 's/[[:alnum:]]*//'
 eyes on me
$ echo "123 eyes on me" | sed -E 's/[[:alnum:] ]*//'

$ echo "123 eyes on me" | sed -E 's/[[:digit:] ]*//'
eyes on me

Даже со знанием vi-mode и навыками работы с терминалом сложно отредактировать предыдущую команду и повторно запускать ее каждый раз. Я бы предпочел просто отредактировать параметры на месте и увидеть их эффект в реальном времени.

Некоторые веб-сайты предоставляют подобные инструменты для конкретных случаев использования, например, с соответствием регулярному выражению:

enter image description here

Другие примеры включают линтеры JSON, калькуляторы или парсеры YAML. Однако все они страдают от множества проблем:

  • они не являются общими и переносимыми для разработки команд в целом, что если я захочу направить вывод регулярного выражения в tr, а затем выбрать третий столбец с помощью awk?
  • может вести себя иначе, чем моя команда в терминале
  • он работает в браузере онлайн, а не в моем терминале
  • не с открытым исходным кодом

Есть ли какой-нибудь способ развернуть выражение командной строки в моем терминале и посмотреть вывод, когда я его печатаю?

1 Ответ

0 голосов
/ 30 октября 2018

Обычно я просто помещаю свой код в sed.sh:

echo "testing 123" | sed 's/123/456/'

А затем в терминале следите за выполнением этого файла:

watch -n1 './sed.sh'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...