Como posso usar o xargs replace mas manter o delimitador de espaço?

1

Considere o seguinte xargs usage:

echo Alice Bob Carol | xargs -n1 echo

Ele produz três declarações de eco como esta

echo Alice 
echo Bob 
echo Carol 

Considere este uso xargs modificado:

echo Alice Bob Carol | xargs -n1 -I% echo Hello, %. How are you?

Produz uma declaração de eco em vez das três desejadas:

echo Hello, Alice Bob Carol. How are you?

Isso ocorre porque -I altera a maneira como o fluxo de entrada é delimitado, conforme a página do manual:

unquoted blanks do not terminate input items; instead the separator is the newline character

É possível manter o delimitador de espaço ao usar a técnica de substituição?

O melhor que eu tenho é usar -d para especificar o delimitador de espaço, existe uma maneira melhor?

echo -n Alice Bob Carol | xargs -n1 -I% -d\  echo Hello, %. How are you?
    
por starfry 09.01.2015 / 13:40

0 respostas

Tags