Comments (3)
Extracting data from a JSON file with text tools like grep
is generally not a good idea; one little change in the data and your script suddenly outputs nothing or (worse) incorrect values. Use a tool that understands JSON to tear raw.json
apart, like jq
.
That said, something like the following should work without introducing any new tools (UNTESTED):
# your original data gathering pipeline (minus the unnecessary `cat`)
grep -o -i '"year":[[:blank:]][[:digit:]]\{4\}' $file | grep -o '[[:digit:]]\{4\}' | sort -n | uniq -c |
# bash's builtin read is your friend
while read -r uploads year; do
# generate each internal object
jo year="$year" uploads="$uploads"
done |
# shove them all into a JSON array
jo -p -a
from jo.
@gromgit Thank you! That will help me get started. I was indeed missing | jo -p -a
as a secondary pipe. I think I finally managed to get my head wrapped around how I should deal with nix tools: don't expect one tool to do everything you need, but rather use tools and pipe them together.
A side note: I have seen your answer to many bash questions in issues, perhaps it's an idea to write a small jo cookbook with various examples? jq manual has examples just below each command. Just a suggestion, not a requirement.
from jo.
Related Issues (20)
- RFE: Do not split quoted keys with -d HOT 2
- Gaps in variable HOT 2
- Delete nested element HOT 5
- Assertion `utf8_validate(str)' failed - again? HOT 9
- Generating JSON and including JSON output from another program appears to result in double encoded JSON? HOT 3
- Suberflous `\` if try to escape `}` in value HOT 8
- feature allow string vals with spaces deep nested HOT 1
- Question: how to produce multiline strings? HOT 2
- UTF-8 crash - `Assertion failed: (utf8_validate(str))` HOT 5
- Passing an empty file with `@` syntax now throws an error on 1.7 HOT 5
- FAIL: tests/jo.test 20 - read json array elements HOT 7
- 1.9 build for Windows missing HOT 1
- jo will drop the trailing newline at the end of file HOT 8
- Dynamic array of nested oneofs HOT 1
- Disable type coercion HOT 6
- possible bug: use of `-a` on outer command in nested jo fails to render inside object element when space exists in internal object property value HOT 2
- Modifications to GPLv2 license make jo difficult to adopt in enterprise environment HOT 2
- Please support empty array HOT 1
- jo extends fractional part of some floats HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from jo.