pipe stdout-to-file с wc

Я работаю над назначением лаборатории для класса, который иллюстрирует users | wc -w users | wc -w отображая количество пользователей, которые в настоящее время вошли в систему. Инструктор попросил написать данные о выходе users в файл ( users > file ), все еще отображая счет. Моя первоначальная мысль заключалась в том, чтобы изменить исходный пример, чтобы просто прочитать users > file | wc -w users > file | wc -w , но я получаю сообщение об ошибке:

 ambiguous output redirect 

Наша лаборатория Unix в нашем колледже работает по умолчанию в tcsh , и я знаю, что команды могут отличаться между оболочками. Есть ли команда, которая может выполнить это, что я полностью забываю?

2 Solutions collect form web for “pipe stdout-to-file с wc”

Используйте tee :

 users | tee file | wc -w 

Дает в качестве вывода количество пользователей, и он записывает файл с пользователями в качестве контента.


Случай в вашем вопросе :

 command >file | command2 

Это не сработает. С >file вы перенаправляете вывод command в файл file и в то же время вывод записывается в анонимный канал, где команда command2 читается на другом конце. Это неоднозначное перенаправление.

Команда tee принимает file как аргумент, в котором tee записывает все, что он получает со своего стандартного ввода. tee также записывает все: от стандартного ввода до стандартного вывода, где вы можете перенаправить на дальнейшие команды или файлы.

Для этого есть команда; это называется tee :

 users | tee file | wc -w 

PS. (Внешние) команды не различаются между оболочками; синтаксис перенаправления ввода и вывода изменяется.

  • Заменить определенный текст в фигурных скобках
  • Неоднозначно называемые исполняемые файлы
  • Когда переменные окружения устанавливаются в tcsh?
  • Проблема: слияние команды с конвейером и аргументом
  • Почему некоторые ключи keykey по умолчанию не работают в tcsh?
  • awk + паста для очистки PATH?
  • Глобальный / etc / profile setenv или экспорт, перезаписывающий пользовательские настройки в .profile
  • Как установить переменную как идентификатор пользователя
  • Как создать каталог для каждого файла в родительском каталоге
  • Как напечатать восклицательный знак в tcsh?
  • Скрипт не выполняется в соответствии с ожиданием
  • Linux и Unix - лучшая ОС в мире.