mirror of
https://github.com/johnkerl/miller.git
synced 2026-07-17 16:38:54 +00:00
document mlr check
This commit is contained in:
parent
0e7edf02c2
commit
86f76b9b80
7 changed files with 43 additions and 14 deletions
|
|
@ -174,13 +174,16 @@ lrec_t* lrec_parse_csv(hdr_keeper_t* phdr_keeper, char* data_line, char ifs, int
|
|||
char* value = data_line;
|
||||
|
||||
// xxx needs hdr/data length check!!!!!!
|
||||
|
||||
// xxx needs pe-non-null (hdr-empty) check:
|
||||
sllse_t* pe = phdr_keeper->pkeys->phead;
|
||||
for (char* p = data_line; *p; ) {
|
||||
if (*p == ifs) {
|
||||
*p = 0;
|
||||
|
||||
if (pe == NULL) { // xxx to do: get file-name/line-number context in here
|
||||
fprintf(stderr, "Header-data length mismatch!\n");
|
||||
exit(1);
|
||||
}
|
||||
key = pe->value;
|
||||
lrec_put_no_free(prec, key, value);
|
||||
|
||||
|
|
@ -195,8 +198,16 @@ lrec_t* lrec_parse_csv(hdr_keeper_t* phdr_keeper, char* data_line, char ifs, int
|
|||
p++;
|
||||
}
|
||||
}
|
||||
if (pe == NULL) {
|
||||
fprintf(stderr, "Header-data length mismatch!\n");
|
||||
exit(1);
|
||||
}
|
||||
key = pe->value;
|
||||
lrec_put_no_free(prec, key, value);
|
||||
if (pe->pnext != NULL) {
|
||||
fprintf(stderr, "Header-data length mismatch!\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
return prec;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ mapper_t* mapper_check_alloc() {
|
|||
void mapper_check_usage(char* argv0, char* verb) {
|
||||
fprintf(stdout, "Usage: %s %s\n", argv0, verb);
|
||||
fprintf(stdout, "Consumes records without printing any output.\n");
|
||||
fprintf(stdout, "Useful for doing a well-formatted check on input data.\n");
|
||||
fprintf(stdout, "Useful for doing a well-formatted check on CSV input data.\n");
|
||||
}
|
||||
|
||||
mapper_t* mapper_check_parse_cli(int* pargi, int argc, char** argv) {
|
||||
|
|
|
|||
|
|
@ -2,9 +2,6 @@
|
|||
! BUGFIXES !
|
||||
|
||||
* --ofmt ignored in put. perhaps best to reglobalize.
|
||||
* csv hdr/data length check!!
|
||||
* echo a|mlr --dkvp --oxtab cat puts 'a a'
|
||||
|
||||
|
||||
================================================================
|
||||
FEATURES
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ POKI_RUN_COMMAND{{mlr --opprint cat data/het.dkvp}}HERE
|
|||
POKI_PUT_LINK_FOR_PAGE(reference.html)HERE):
|
||||
|
||||
<table><tr><td>
|
||||
POKI_RUN_COMMAND{{mlr --csv group-like data/het.dkvp}}HERE
|
||||
POKI_RUN_COMMAND{{mlr --ocsv group-like data/het.dkvp}}HERE
|
||||
</td><td>
|
||||
POKI_RUN_COMMAND{{mlr --opprint group-like data/het.dkvp}}HERE
|
||||
</td></tr></table>
|
||||
|
|
|
|||
|
|
@ -214,6 +214,11 @@ POKI_RUN_COMMAND{{mlr --csv cat a.csv b.csv}}HERE
|
|||
POKI_RUN_COMMAND{{mlr --icsv --oxtab cat a.csv b.csv}}HERE
|
||||
</td></tr></table>
|
||||
|
||||
<!-- ================================================================ -->
|
||||
<h2>check</h2>
|
||||
|
||||
POKI_RUN_COMMAND{{mlr check --help}}HERE
|
||||
|
||||
<!-- ================================================================ -->
|
||||
<h2>count-distinct</h2>
|
||||
|
||||
|
|
|
|||
|
|
@ -173,14 +173,15 @@ resource loadsec ok
|
|||
<p/>
|
||||
<div class="pokipanel">
|
||||
<pre>
|
||||
$ mlr --csv group-like data/het.dkvp
|
||||
resource=/path/to/file,loadsec=0.45
|
||||
record_count=100,resource=/path/to/file
|
||||
record_count=150,resource=/path/to/second/file
|
||||
$ mlr --ocsv group-like data/het.dkvp
|
||||
resource,loadsec,ok
|
||||
/path/to/file,0.45,true
|
||||
/path/to/second/file,0.32,true
|
||||
/some/other/path,0.97,false
|
||||
|
||||
resource=/path/to/file,loadsec=0.45,ok=true
|
||||
resource=/path/to/second/file,loadsec=0.32,ok=true
|
||||
resource=/some/other/path,loadsec=0.97,ok=false
|
||||
record_count,resource
|
||||
100,/path/to/file
|
||||
150,/path/to/second/file
|
||||
</pre>
|
||||
</div>
|
||||
<p/>
|
||||
|
|
|
|||
|
|
@ -99,6 +99,7 @@ Miller commands were run with pretty-print-tabular output format.
|
|||
• <a href="#Number_formatting">Number formatting</a><br/>
|
||||
• <a href="#Data_transformations">Data transformations</a><br/>
|
||||
• <a href="#cat">cat</a><br/>
|
||||
• <a href="#check">check</a><br/>
|
||||
• <a href="#count-distinct">count-distinct</a><br/>
|
||||
• <a href="#cut">cut</a><br/>
|
||||
• <a href="#filter">filter</a><br/>
|
||||
|
|
@ -468,6 +469,20 @@ c 9
|
|||
<p/>
|
||||
</td></tr></table>
|
||||
|
||||
<!-- ================================================================ -->
|
||||
<a id="check"/><h2>check</h2>
|
||||
|
||||
<p/>
|
||||
<div class="pokipanel">
|
||||
<pre>
|
||||
$ mlr check --help
|
||||
Usage: mlr check
|
||||
Consumes records without printing any output.
|
||||
Useful for doing a well-formatted check on CSV input data.
|
||||
</pre>
|
||||
</div>
|
||||
<p/>
|
||||
|
||||
<!-- ================================================================ -->
|
||||
<a id="count-distinct"/><h2>count-distinct</h2>
|
||||
|
||||
|
|
@ -605,7 +620,7 @@ i j k
|
|||
<pre>
|
||||
$ mlr filter 'FNR == 2' data/small*
|
||||
a=eks,b=pan,i=2,x=0.7586799647899636,y=0.5221511083334797
|
||||
pan=pan,1=1,0.3467901443380824=0.3467901443380824,0.7268028627434533=0.7268028627434533
|
||||
1=pan,2=pan,3=1,4=0.3467901443380824,5=0.7268028627434533
|
||||
a=wye,b=eks,i=10000,x=0.734806020620654365,y=0.884788571337605134
|
||||
</pre>
|
||||
</div>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue