Thicket data repository for the EEG
at main 1.7 kB view raw
1{ 2 "id": "https://www.tunbury.org/2025/04/13/gnu-parallel", 3 "title": "GNU Parallel", 4 "link": "https://www.tunbury.org/2025/04/13/gnu-parallel/", 5 "updated": "2025-04-13T00:00:00", 6 "published": "2025-04-13T00:00:00", 7 "summary": "If you haven’t used it before, or perhaps it has been so long that it has been swapped out to disk, let me commend GNU’s Parallel to you.", 8 "content": "<p>If you haven’t used it before, or perhaps it has been so long that it has been swapped out to disk, let me commend GNU’s <a href=\"https://www.gnu.org/software/parallel/parallel.html\">Parallel</a> to you.</p>\n\n<p>Parallel executes shell commands in parallel! A trivial example would be <code>parallel echo ::: A B C</code>, which runs <code>echo A</code>, <code>echo B</code> and <code>echo C</code>. <code>{}</code> can be used as a placeholder for the parameter in cases where it isn’t simply appended to the command line.</p>\n\n<p>Multiple parameters can be read from an input file using four colons, <code>parallel echo :::: params_file</code>. This is particularly useful as it correctly deals with parameters/file names with spaces. For example, create a tab-delimited list of source and destination paths in <code>paths.tsv</code> and then run:</p>\n\n<div><div><pre><code>parallel <span>--jobs</span> 8 <span>--colsep</span> <span>'\\t'</span> <span>--progress</span> rsync <span>-avh</span> <span>{</span>1<span>}</span> <span>{</span>2<span>}</span> :::: paths.tsv\n</code></pre></div></div>", 9 "content_type": "html", 10 "author": { 11 "name": "Mark Elvers", 12 "email": "mark.elvers@tunbury.org", 13 "uri": null 14 }, 15 "categories": [ 16 "GNU", 17 "tunbury.org" 18 ], 19 "source": "https://www.tunbury.org/atom.xml" 20}