Команда, которая печатает содержимое файла, указанное имя файла на stdin

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

Я не могу поделиться фактической командой, которую я запускаю, но для целей воспроизводимости, которую вы можете заменить ./my-command args с echo 1:2:3:4:file.txt

Поэтому я попробовал следующее:

 ./my-command args | cut -d : -f 5 | cat 

Однако это просто печатает имя файла, так как cat просто копирует содержимое stdin (которое содержит мое имя файла) в stdout, когда оно вызывается без каких-либо аргументов.

Теперь я знаю, что я могу обойти это Bash, инвертируя поток команд и, по существу, передавая cat аргумент через суб-оболочку, например

 cat `./my-command args | cut -d : -f 5` 

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

Есть ли cat как программа, которая будет принимать имена файлов на stdin и распечатывать их содержимое? Или есть способ заставить cat рассматривать stdin как аргументы?

Заметки

Я понимаю, что я могу определить функцию bash, которая будет читать имена файлов из stdin и вызывать cat на них в моей собственной среде. Однако этот метод для демпинга выходных данных непосредственно должен быть включен в документацию конечного пользователя, а простой агностический подход оболочки весьма предпочтителен.

One Solution collect form web for “Команда, которая печатает содержимое файла, указанное имя файла на stdin”

Проведя немного больше исследований, я понял, что этот сценарий – именно то, для xargs предназначены xargs :

 ./my-command args | cut -d : -f 5 | xargs cat 

Который превратит вывод stdin в вызов cat с фактическим именем файла и, таким образом, распечатает содержимое файла

  • xargs не генерирует правильную команду
  • Правильно избегая выхода из трубы в xargs
  • Почему xargs пропускает первый аргумент при передаче в подоболочку?
  • В чем разница между результатами и эффективностью после добавления -f в rm и -print в поиске?
  • правильное параллельное использование xargs
  • Xargs во вторую сторону трубы?
  • Grep каталог и возвращаемый список с номерами строк
  • Измените код ASP на PHP-код во всех файлах
  • Как сделать `head` и` tail` на вход с нулевым ограничением в bash?
  • xargs и линейный трубопровод
  • Как процитировать аргументы с помощью xargs
  • Linux и Unix - лучшая ОС в мире.