jq is a great tool. It does what bash can not – work with structured data. I use it. I would like not to use it.
In my opinion, working with structured data is such a basic thing that it makes much more sense to be handled by the language itself. I want my shell to be capable and I strongly disagree with the view that a shell “is not supposed to do that”. Shell is supposed to do whatever is needed to make my life easier. Handling structured data is one of these things.
If “shell is not supposed to do that”, by that logic, bash is not supposed to do anything except for running external commands and routing the data between them. Doesn’t it seem odd that bash does have builtin string manipulation then? Maybe bash shouldn’t have added associative arrays in version 4? … or arrays in version 2? How about
while ? Maybe bash shouldn’t have them either?
jq is a symptom that bash can’t handle today’s reality: structured data. The world is increasingly more about APIs. APIs consume and return structured data. I do work with APIs from shell. Don’t you guys use AWS CLI or any other API that returns JSON?
The reality has changed. bash hasn’t. I’m working on bash alternative. Please help me with it. Or at least spread the word.
If you don’t like my project, join Elvish . Elvish is another shell that supports structured data.
Happy coding! Hope it’s not in bash.