2014-03-12 17:25:30 +00:00
# xargs
2016-10-17 23:02:05 +01:00
> Execute a command with piped arguments coming from another command, a file, etc.
> The input is treated as a single block of text and split into separate arguments on spaces, tabs, newlines and end-of-file.
2014-03-12 17:25:30 +00:00
2016-10-17 23:02:05 +01:00
- Main usage pattern:
2014-03-12 17:25:30 +00:00
2016-10-17 23:02:05 +01:00
`{{arguments_source}} | xargs {{command}}`
2014-03-12 17:25:30 +00:00
2018-05-18 21:22:49 +01:00
- Delete all files with a `.backup` extension. `-print0` on find uses a null character to split the files, and `-0` changes the delimiter to the null character (useful if there's whitespace in filenames):
2016-05-16 13:47:00 +01:00
2018-05-18 21:22:49 +01:00
`find . -name {{'*.backup'}} -print0 | xargs -0 rm -v`
2014-03-12 17:25:30 +00:00
2016-10-17 23:02:05 +01:00
- Execute the command once for each input line, replacing any occurrences of the placeholder (here marked as `_` ) with the input line:
2014-03-12 17:25:30 +00:00
2016-10-17 23:02:05 +01:00
`{{arguments_source}} | xargs -I _ {{command}} _ {{optional_extra_arguments}}`