Хобрук: Ваш путь к мастерству в программировании

Эквивалент команды `tee` для *input*?

Команда unix tee разделяет стандартный ввод на stdout И файл.

Мне нужно что-то, что работает наоборот, объединяя несколько входных данных в один выходной — мне нужно объединить стандартный вывод двух (или более) команд.
Не уверен, какой должна быть семантика этого приложения — давайте предположим, что каждая аргумент является полной командой.

Пример:

>  eet "echo 1" "echo 2" > file.txt

должен создать файл с содержимым

1
2

Я старался

>  echo 1 && echo 2 > zz.txt

Это не работает.

Примечание: я знаю, что могу просто добавить выходные данные каждой команды в файл, но я хочу сделать это за один раз (на самом деле я хочу передать объединенные выходные данные другой программе).< br> Кроме того, я мог бы свернуть свой собственный, но я ленив, когда могу себе это позволить :-)

О да, и было бы неплохо, если бы это работало в Windows (хотя я думаю, что любое решение со вкусом bash/linux работает через UnxUtils/msys/etc)

26.02.2009

Ответы:


1

Пытаться

( echo 1; echo 2 ) > file.txt

Это порождает подоболочку и выполняет там команды

{ echo 1; echo 2; } > file.txt

тоже можно. Это не порождает подоболочку (важна точка с запятой после последней команды)

26.02.2009
  • Какую оболочку вы используете? Я попробовал первый в Windows «cmd.exe», и содержимое файла «1; эхо 2' ; 2-й вариант вообще не работает. 26.02.2009
  • Я заставил его работать в cmd.exe следующим образом: ( echo 1 && echo 2 ) › file.txt 26.02.2009
  • Я использую bash на linux. ( echo 1 && echo 2 ) работает, только если echo 1 возвращает 0 (успех)! && означает что-то вроде И, эхо 2 выполняется только в том случае, если эхо 1 не завершается ошибкой 26.02.2009

  • 2

    Я предполагаю, что вы хотите, чтобы обе команды выполнялись параллельно и соединяли оба вывода с другой командой.

    Я бы сделал:

    ( echo 1 & echo 2 ) | cat
    

    Где «echo 1» и «echo 2» — это команды, генерирующие выходные данные, а «cat» — это команда, которая получит объединенный вывод.

    11.03.2015

    3

    echo 1 > zz.txt && echo 2 >> zz.txt

    Это должно сработать. Все, что вы на самом деле делаете, это запускаете две команды друг за другом, где первая перенаправляет в файл, а затем, если это было успешно, вы запускаете другую команду, которая добавляет свой вывод в конец файла, который вы написали в первую очередь. .

    26.02.2009
    Новые материалы

    Учебные заметки JavaScript Object Oriented Labs
    Вот моя седьмая неделя обучения программированию. После ruby ​​и его фреймворка rails я начал изучать самый популярный язык интерфейса — javascript. В отличие от ruby, javascript — это более..

    Разбор строк запроса в vue.js
    Иногда вам нужно получить данные из строк запроса, в этой статье показано, как это сделать. В жизни каждого дизайнера/разработчика наступает момент, когда им необходимо беспрепятственно..

    Предсказание моей следующей любимой книги 📚 Благодаря данным Goodreads и машинному обучению 👨‍💻
    «Если вы не любите читать, значит, вы не нашли нужную книгу». - J.K. Роулинг Эта статья сильно отличается от тех, к которым вы, возможно, привыкли . Мне очень понравилось поработать над..

    Основы принципов S.O.L.I.D, Javascript, Git и NoSQL
    каковы принципы S.O.L.I.D? Принципы SOLID призваны помочь разработчикам создавать надежные, удобные в сопровождении приложения. мы видим пять ключевых принципов. Принципы SOLID были разработаны..

    Как настроить Selenium в проекте Angular
    Угловой | Селен Как настроить Selenium в проекте Angular Держите свое приложение Angular и тесты Selenium в одной рабочей области и запускайте их с помощью Mocha. В этой статье мы..

    Аргументы прогрессивного улучшения почти всегда упускают суть
    В наши дни в кругах веб-разработчиков много болтают о Progressive Enhancement — PE, но на самом деле почти все аргументы с обеих сторон упускают самую фундаментальную причину, по которой PE..

    Введение в Джанго Фреймворк
    Схема «работать умно, а не усердно» В этой и последующих статьях я познакомлю вас с тем, что такое фреймворк Django и как создать свое первое приложение с помощью простых и понятных шагов, а..