Call a program one time for each argument w/ xargs
Generally, I've used xargs in combination with programs like kill or echo both of which accept a variable number of arguments. Some programs only accept one argument.
For lack of a better example, lets try adding 1 to 10 numbers. In shell environments you can add with the expr command.
> expr 1 + 1
2
I can combine this with seq and pass the piped values from seq to expr with xargs.
> seq 10 | xargs expr 1 +
expr: syntax error
In the above, instead of adding 1 to 1 and then 1 to 2, it trys to run:
expr 1 + 1 2 3 4 5 6 7 8 9 0
Syntax Error!
We can use the -n flag to ensure that only one argument is applied at time and the command runs 10 times.
> seq 10 | xargs -n1 expr 1 +
2
3
4
5
6
7
8
9
10
11
For more insight into what's being called, use the -t flag to see the commands.