mlr.md 1.1 KB

mlr

Miller๋Š” CSV, TSV ๋ฐ ํ‘œ ํ˜•์‹ JSON๊ณผ ๊ฐ™์€ ์ด๋ฆ„์œผ๋กœ ์ƒ‰์ธ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์œ„ํ•œ awk, sed, cut, join, sort์™€ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๋” ๋งŽ์€ ์ •๋ณด: https://johnkerl.org/miller/doc.

  • CSV ํŒŒ์ผ์„ ํ‘œ ํ˜•์‹์œผ๋กœ ๋ณด๊ธฐ ์ข‹๊ฒŒ ์ถœ๋ ฅ:

mlr --icsv --opprint cat {{์˜ˆ์ œ.csv}}

  • JSON ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„ ์ถœ๋ ฅ ํ˜•์‹์„ ๋ณด๊ธฐ ์ข‹๊ฒŒ ์ถœ๋ ฅ:

echo '{"hello":"world"}' | mlr --ijson --opprint cat

  • ํŠน์ • ํ•„๋“œ๋ฅผ ์•ŒํŒŒ๋ฒณ ์ˆœ์„œ๋กœ ์ •๋ ฌ:

mlr --icsv --opprint sort -f {{ํ•„๋“œ}} {{์˜ˆ์ œ.csv}}

  • ํŠน์ • ํ•„๋“œ๋ฅผ ๋‚ด๋ฆผ์ฐจ์ˆœ ์ˆซ์ž ์ˆœ์„œ๋กœ ์ •๋ ฌ:

mlr --icsv --opprint sort -nr {{ํ•„๋“œ}} {{์˜ˆ์ œ.csv}}

  • CSV๋ฅผ JSON์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋ฉฐ ๊ณ„์‚ฐ ์ˆ˜ํ–‰ ๋ฐ ๊ณ„์‚ฐ ๊ฒฐ๊ณผ ํ‘œ์‹œ:

mlr --icsv --ojson put '${{์ƒˆํ•„๋“œ1}} = ${{์˜›ํ•„๋“œA}}/${{์˜›ํ•„๋“œB}}' {{์˜ˆ์ œ.csv}}

  • JSON์„ ๋ฐ›์•„ ์ถœ๋ ฅ ํ˜•์‹์„ ์ˆ˜์ง JSON์œผ๋กœ ํฌ๋งท:

echo '{"hello":"world", "foo":"bar"}' | mlr --ijson --ojson --jvstack cat

  • ์••์ถ•๋œ CSV ํŒŒ์ผ์˜ ์ˆซ์ž๋ฅผ ๋ฌธ์ž์—ด๋กœ ์ฒ˜๋ฆฌํ•˜์—ฌ ํ–‰ ํ•„ํ„ฐ๋ง:

mlr --prepipe 'gunzip' --csv filter -S '${{ํ•„๋“œ๋ช…}} =~ "{{์ •๊ทœ_ํ‘œํ˜„์‹}}"' {{์˜ˆ์ œ.csv.gz}}