cmd1, cmd2 соединяются с трубой и сохраняют журнал каждой запятой - PullRequest
0 голосов
/ 04 сентября 2018

Я собираюсь передать команду 1 и команду 2. И журнал этой команды хочет вывести в один файл.

но отображение журнала на терминале ...

$cmd1 1> result1.out 2> log.txt

$cmd2 result1.out 1> result2.out 2>> log.txt

Для сокращения времени можно использовать две команды.

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

$cmd1 | cmd2 1> result.out 2> log.txt 

В этой ситуации я хочу сохранить весь журнал в log.txt, но журнал не записал этот файл

Ответы [ 2 ]

0 голосов
/ 04 сентября 2018

Группирует конвейер и перенаправляет stderr всей группы:

{ cmd1 | cmd2 >result.out; } 2>log.txt
0 голосов
/ 04 сентября 2018

Вот что у вас есть:

cmd1 | cmd2 >out 2>log

That

  • передает стандартный вывод cmd1 в стандартный ввод cmd2,
  • выводит на экран стандартный кодер cmd1,
  • сохраняет стандартный вывод cmd2 в файл,
  • и сохраняет stderr cmd2 в файл журнала.

Вы можете захотеть:

cmd1 2>log1 | cmd2 >out >log2

Это

  • передает стандартный вывод cmd1 в стандартный ввод cmd2,
  • сохраняет stderr cmd1 в файл log1,
  • сохраняет стандартный вывод cmd2 в файл,
  • и сохраняет стандартный вывод cmd2 в файл log2.
...