xargs substitution
Output piped to xargs
will be placed at the end of the command passed to
xargs. This can be problematic when we want the output to go in the middle of
the command.
> echo "Bravo" | xargs echo "Alpha Charlie"
Alpha Charlie Bravo
xargs
has the facility for substituion however. Indicate the symbol or string you would like to replace with the -I
flag.
> echo "Bravo" | xargs -I SUB echo "Alpha SUB Charlie"
Alpha Bravo Charlie
You can use the symbol or phrase twice:
> echo "Bravo" | xargs -I SUB echo "Alpha SUB Charlie, SUB"
Alpha Bravo Charlie, Bravo
If xargs is passed two lines, it will call the the command with the substitution twice.
> echo "Bravo\nDelta" | xargs -I SUB echo "Alpha SUB Charlie SUB"
Alpha Bravo Charlie Bravo
Alpha Delta Charlie Delta
Tweet