Skip to content

Commit d52162b

Browse files
jq exercises are done
1 parent 4350f48 commit d52162b

11 files changed

Lines changed: 18 additions & 0 deletions

jq/script-01.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,4 @@ set -euo pipefail
55
# The input for this script is the person.json file.
66
# TODO: Write a command to output the name of the person.
77
# Your output should be exactly the string "Selma", but should not contain any quote characters.
8+
jq -r '.name' person.json #we use '-r' to print the name without quotations

jq/script-02.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,4 @@ set -euo pipefail
55
# The input for this script is the person.json file.
66
# TODO: Write a command to output the address of the person, all on one line, with a comma between each line.
77
# Your output should be exactly the string "35 Fashion Street, London, E1 6PX", but should not contain any quote characters.
8+
jq -r '.address | join(", ")' person.json # first it returns an array but we use join to add them toghether with a comma and a space

jq/script-03.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,4 @@ set -euo pipefail
55
# The input for this script is the person.json file.
66
# TODO: Write a command to output the name of the person, then a comma, then their profession.
77
# Your output should be exactly the string "Selma, Software Engineer", but should not contain any quote characters.
8+
jq -r '[.name, .profession] | join(", ")' person.json # join works on arrays thats why we need to to put values of name and profession in a array to be able to use join

jq/script-04.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,4 @@ set -euo pipefail
66
# TODO: Write a command to output just the names of each player, one per line.
77
# Your output should contain 6 lines, each with just one word on it.
88
# Your output should not contain any quote characters.
9+
jq -r '.[].name' scores.json # we get the "name" from each object in the array and print it '.[].name'

jq/script-05.sh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,5 @@ set -euo pipefail
55
# The input for this script is the scores.json file.
66
# TODO: Write a command to output the names of each player, as well as their city.
77
# Your output should contain 6 lines, each with two words on it.
8+
jq -r '.[] | [.name, .city] | join(", ")' scores.json
9+
# .[] goes through each object [.name, .city] = creates a temporary array for name and city and then we use join to join name and city

jq/script-06.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,4 @@ set -euo pipefail
66
# TODO: Write a command to output just the names of each player along with the score from their first attempt.
77
# Your output should contain 6 lines, each with one word and one number on it.
88
# The first line should be "Ahmed 1" with no quotes.
9+
jq -r '.[] | [.name, .scores[0]] | join(" ")' scores.json # .scores[index 1]

jq/script-07.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,4 @@ set -euo pipefail
66
# TODO: Write a command to output just the names of each player along with the score from their last attempt.
77
# Your output should contain 6 lines, each with one word and one number on it.
88
# The first line should be "Ahmed 4" with no quotes.
9+
jq -r '.[] | [.name, .scores[-1]] | join(" ")' scores.json # .scores[-1] = last index

jq/script-08.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,4 @@ set -euo pipefail
66
# TODO: Write a command to output just the names of each player along with the number of times they've played the game.
77
# Your output should contain 6 lines, each with one word and one number on it.
88
# The first line should be "Ahmed 3" with no quotes.
9+
jq -r '.[] | [.name, (.scores | length)] | join(" ")' scores.json # (.scores | length) = length of array

jq/script-09.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,4 @@ set -euo pipefail
66
# TODO: Write a command to output just the names of each player along with the total scores from all of their games added together.
77
# Your output should contain 6 lines, each with one word and one number on it.
88
# The first line should be "Ahmed 15" with no quotes.
9+
jq -r '.[] | [.name, (.scores | add)] | join(" ")' scores.json # (.scores | add) = adding each index of this array

jq/script-10.sh

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,7 @@ set -euo pipefail
55
# The input for this script is the scores.json file.
66
# TODO: Write a command to output the total of adding together all players' first scores.
77
# Your output should be exactly the number 54.
8+
jq -r 'map(.scores[0]) | add' scores.json
9+
10+
# map(.scores[0]) => a list of first scores of each player
11+
# then we use add to add each number of that array

0 commit comments

Comments
 (0)