Muitas vezes, eu quero alimentar dados de string relativamente curtos (embora possam ser várias linhas) para programas de linha de comando que aceitam apenas entradas de arquivos (por exemplo, wdiff) de forma repetida. Claro que posso criar um ou mais arquivos temporários, salvar a string e executar o comando com o nome do arquivo como parâmetro. Mas parece-me que este procedimento seria altamente ineficiente se os dados fossem realmente gravados no disco e também poderia prejudicar o disco mais do que o necessário se eu repetir esse procedimento várias vezes, por exemplo, se eu quiser alimentar linhas únicas de texto longo arquivos para wdiff. Existe uma maneira recomendada de contornar isso, digamos, usando pseudo arquivos, como pipes, para armazenar os dados temporariamente sem gravá-los no disco (ou gravá-los apenas se excederem um comprimento crítico). Observe que o wdiff usa dois argumentos e,wdiff <"text"
.
xargs
faria as linhas de entrada dos argumentos de seqüência de caracteres do arquivo para o comando. Mas eu preciso do contrário.
echo $data_are_here | dumb_program
?
xargs
?