Shell scripting with JQ help


 
Thread Tools Search this Thread
Top Forums UNIX for Beginners Questions & Answers Shell scripting with JQ help
# 1  
Old 01-18-2020
Shell scripting with JQ help

Evening all,

this is my first go at any bash scripting and i'm struggling with handling jquery. I've got the jq library installed and working. i'm working out of Ubuntu and my JQuery looks like this, some info is censored with #.

Code:
{
  "description": "some description 1",
  "fixed_version": "######",
  "link": "https://security-tracker.debian.org/tracker/CVE-#######",
  "name": "CVE-######",
  "package_name": "some package 1",
  "package_version": "####",
  "score": 4.6,
  "score_v3": 9.1,
  "severity": "Medium",
  "vectors": "AV:L/AC:L/Au:N/C:P/I:P/A:P",
  "vectors_v3": "CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N"
}
{
  "description": "some description 2",
  "fixed_version": "#######",
  "link": "https://security-tracker.debian.org/tracker/CVE-#######",
  "name": "CVE-######",
  "package_name": "some package 2",
  "package_version": "#####",
  "score": 4.6,
  "score_v3": 9.1,
  "severity": "Medium",
  "vectors": "AV:L/AC:L/Au:N/C:P/I:P/A:P",
  "vectors_v3": "CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N"
}

What i'd like to do is iterate through this so like so....
Code:
vulnerabilities=$(<"$WorkingDirectory"/vulnerabilities.txt) 
echo $vulnerabilities | $JSONParser -r '.[0].description'

This is the error i'm getting
Code:
jq: error (at <stdin>:1): Cannot index object with number

I've got a web dev background and a bit of PS. Dealing with JQuery in Shell so far has been a nightmare. Can anybody tell me what i'm doing wrong???

Thanks,
DSFX

Last edited by Scrutinizer; 01-18-2020 at 08:45 PM.. Reason: quote tags -> code tags
# 2  
Old 01-18-2020
Try:
Code:
jq -r '.description'

--
It is best to put quotes around variable expansions:
Code:
echo "$vulnerabilities"

--
You do not need the intermediate step, you could also do this:
Code:
jq -r '.description' "$WorkingDirectory"/vulnerabilities.txt


Last edited by Scrutinizer; 01-19-2020 at 02:32 AM..
This User Gave Thanks to Scrutinizer For This Post:
# 3  
Old 01-18-2020
Hey,

Thanks so much for getting back. I ran it with
Code:
echo $vulnerabilities | $JSONParser -r '.description'

it didn't error on me but it dumped both descriptions out. I need to compile an email to send out with several different fields in it and can't seem to do it with this out put. It's really odd, i wouldn't expect behavior like this for dealing with JSON.

Quote:
Some description 1
Some description 2
I need to pull about 7 of these fields and compose an email that will get sent out to the teams that manage these projects. So things need to be ordered in a particular way. Normally i'd have an object and just reference that all the way through with an index but can't figure out how to do that in this case or if BASH supports objects.
# 4  
Old 01-19-2020
Not sure what you are looking for. You could pipe the result into a while-read loop and use shell variables to compose your command.

Code:
jq -r '.name + ";" + .description' "$WorkingDirectory"/vulnerabilities.txt |  
while IFS=\; read name description
do
   printf "%s\n" "Name: '${name}' has description '${description}'"
done

or
Code:
jq -r '[.name, .description] | join(";")' "$WorkingDirectory"/vulnerabilities.txt |
...

Would produce:
Code:
Name: 'CVE-######' has description 'some description 1'
Name: 'CVE-######' has description 'some description 2'

These 2 Users Gave Thanks to Scrutinizer For This Post:
# 5  
Old 01-19-2020
I used your first solution, worked a treat. Really appreciate your help with this! Shell scripting is not as intuitive as some of the other languages i've used.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Shell script to read lines in a text file and filter user data Shell Programming and Scripting

sxsaaas (3 Replies)
Discussion started by: VikrantD
3 Replies

2. Shell Programming and Scripting

help me in Shell Scripting

Hi there please have a look at the code..i want to create Using a named pipe. Run a find in the background starting in the working directory While this is happening wait for input from the user to ask him which file to find. If the user does not enter any data in 10 seconds ask the user again.... (1 Reply)
Discussion started by: kattak1511
1 Replies

3. Shell Programming and Scripting

Shell scripting

Hi, if in a network there are lots of PCs connected with either windows or linux as operating system.Then what will be the shell script for the same and also if the PC has linux in it then we have to find if it is occupied or unoccupied. If the PC has windows in it then we have to find if it is... (6 Replies)
Discussion started by: akansha singh
6 Replies

4. UNIX for Dummies Questions & Answers

Shell Scripting

Hey I have a data in the file named as outputFile.txt. The data is in the format 123456,12345678912345,400,09/09/09,INACTIVE. I want this output without commas ie 12345612345678912345400090909INACTIVE. Please tell me what to do and clear explain all the terms, as I am new to it. (6 Replies)
Discussion started by: sampandey31
6 Replies

5. Web Development

Perl scripting or shell scripting?

i am going to study any one of the scripting languages mentioned above(shell 0r perl scripting) . Which is having more scope for a fresher? (1 Reply)
Discussion started by: Anna Hussie
1 Replies

6. What is on Your Mind?

Shell Scripting vs Perl scripting

Gents, I have been working in a Solaris/Unix environment for about 9 months. I took some linux classses online before getting the job. But, I am not very good at scripting. I want to learn how to script. Do you think that I should start with Shell scripting or Perl? I wanted to continue with... (2 Replies)
Discussion started by: Pouchie1
2 Replies

7. Android

Android Scripting Environment: Shell Scripting and Android

I just upgraded to Android 2.2 from 2.1. The GPS issue that was troublesome in 2.1 seems to have been fixed. Some of web browsing seems faster, but it could just be my connection is better today ;) Flash works in some browsers but not very good and it is too slow for Flash apps designed for... (0 Replies)
Discussion started by: Neo
0 Replies

8. What is on Your Mind?

Shell scripting vs Perl scripting

Hi all, I would like to start developping some good scripting skills. Do you think it would be best to start with shell scripting or Perl? I already got a fundation, really basics, in perl. but I am wondering what would be best to be good at first. Can you please help me determine which one to... (14 Replies)
Discussion started by: Pouchie1
14 Replies

9. Shell Programming and Scripting

Call Shell scripting from Perl Scripting.

Hi How to call a shell scripting through a Perl scripting? Actually I need some value from Shell scripting and passes in the Perl scripting. So how can i do this? (2 Replies)
Discussion started by: anupdas
2 Replies

10. Shell Programming and Scripting

difference between AIX shell scripting and Unix shell scripting.

please give the difference between AIX shell scripting and Unix shell scripting. (2 Replies)
Discussion started by: haroonec
2 Replies
Login or Register to Ask a Question