Я часто хочу передавать относительно короткие строковые данные (хотя это может быть несколько строк) в программы командной строки, которые принимают входные данные только из файлов (например, wdiff) повторяющимся образом. Конечно, я могу создать один или несколько временных файлов, сохранить там строку и запустить команду с именем файла в качестве параметра. Но мне кажется, что эта процедура будет крайне неэффективной, если на самом деле данные будут записаны на диск, а также может нанести вред диску больше, чем необходимо, если я повторю эту процедуру много раз, например, если я хочу передать отдельные строки длинного текста файлы в wdiff. Есть ли рекомендуемый способ обойти это, скажем, с помощью псевдофайлов, таких как каналы, для временного хранения данных без фактической записи их на диск (или записи, только если они превышают критическую длину). Обратите внимание, что wdiff принимает два аргумента и,wdiff <"text"
,
xargs
будет делать входные строки из файловых аргументов строки для команды. Но мне нужно наоборот.
echo $data_are_here | dumb_program
?
xargs
?