Команда, которая печатает содержимое файла, указанное имя файла на 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 на них в моей собственной среде. Однако этот метод для демпинга выходных данных непосредственно должен быть включен в документацию конечного пользователя, а простой агностический подход оболочки весьма предпочтителен.

  • xargs как поместить результат {} в $ (cmd {})?
  • Копирование папки с помощью xargs
  • Где «xargs» добавляет опцию из STDIN?
  • Измените код ASP на PHP-код во всех файлах
  • Необходимо отформатировать 5 дисков параллельно
  • Xargs во вторую сторону трубы?
  • В чем разница между результатами и эффективностью после добавления -f в rm и -print в поиске?
  • 'find -mtime -1 -print | xargs tar 'архивирует все файлы из каталога, игнорируя аргумент -mtime -1
  • One Solution collect form web for “Команда, которая печатает содержимое файла, указанное имя файла на stdin”

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

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

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

    Linux и Unix - лучшая ОС в мире.