1.. 2 PLEASE DO NOT EDIT DIRECTLY. EDIT THE .rst.in FILE PLEASE. 3 4Quick examples 5================================================================ 6 7Column select:: 8 9 % mlr --csv cut -f hostname,uptime mydata.csv 10 11Add new columns as function of other columns:: 12 13 % mlr --nidx put '$sum = $7 < 0.0 ? 3.5 : $7 + 2.1*$8' *.dat 14 15Row filter:: 16 17 % mlr --csv filter '$status != "down" && $upsec >= 10000' *.csv 18 19Apply column labels and pretty-print:: 20 21 % grep -v '^#' /etc/group | mlr --ifs : --nidx --opprint label group,pass,gid,member then sort -f group 22 23Join multiple data sources on key columns:: 24 25 % mlr join -j account_id -f accounts.dat then group-by account_name balances.dat 26 27Multiple formats including JSON:: 28 29 % mlr --json put '$attr = sub($attr, "([0-9]+)_([0-9]+)_.*", "\1:\2")' data/*.json 30 31Aggregate per-column statistics:: 32 33 % mlr stats1 -a min,mean,max,p10,p50,p90 -f flag,u,v data/* 34 35Linear regression:: 36 37 % mlr stats2 -a linreg-pca -f u,v -g shape data/* 38 39Aggregate custom per-column statistics:: 40 41 % mlr put -q '@sum[$a][$b] += $x; end {emit @sum, "a", "b"}' data/* 42 43Iterate over data using DSL expressions:: 44 45 % mlr --from estimates.tbl put ' 46 for (k,v in $*) { 47 if (is_numeric(v) && k =~ "^[t-z].*$") { 48 $sum += v; $count += 1 49 } 50 } 51 $mean = $sum / $count # no assignment if count unset 52 ' 53 54Run DSL expressions from a script file:: 55 56 % mlr --from infile.dat put -f analyze.mlr 57 58Split/reduce output to multiple filenames:: 59 60 % mlr --from infile.dat put 'tee > "./taps/data-".$a."-".$b, $*' 61 62Compressed I/O:: 63 64 % mlr --from infile.dat put 'tee | "gzip > ./taps/data-".$a."-".$b.".gz", $*' 65 66Interoperate with other data-processing tools using standard pipes:: 67 68 % mlr --from infile.dat put -q '@v=$*; dump | "jq .[]"' 69 70Tap/trace:: 71 72 % mlr --from infile.dat put '(NR % 1000 == 0) { print > stderr, "Checkpoint ".NR}' 73