Thicket data repository for the EEG
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}