From 217ad76cb5e37fc64e2bf11c149ecf227e928ee8 Mon Sep 17 00:00:00 2001 From: Rashaad Ebrahim Date: Mon, 17 Nov 2025 17:23:55 +0200 Subject: [PATCH 1/2] jq exercises complete --- jq/script-01.sh | 2 ++ jq/script-02.sh | 2 ++ jq/script-03.sh | 2 ++ jq/script-04.sh | 2 ++ jq/script-05.sh | 1 + jq/script-06.sh | 2 ++ jq/script-07.sh | 2 ++ jq/script-08.sh | 2 ++ jq/script-09.sh | 2 ++ jq/script-10.sh | 2 ++ jq/script-11.sh | 2 ++ 11 files changed, 21 insertions(+) diff --git a/jq/script-01.sh b/jq/script-01.sh index 95827f68..b4bb03aa 100755 --- a/jq/script-01.sh +++ b/jq/script-01.sh @@ -4,4 +4,6 @@ set -euo pipefail # The input for this script is the person.json file. # TODO: Write a command to output the name of the person. +jq -r '.name' person.json + # Your output should be exactly the string "Selma", but should not contain any quote characters. diff --git a/jq/script-02.sh b/jq/script-02.sh index 21544d67..4e0e7b34 100755 --- a/jq/script-02.sh +++ b/jq/script-02.sh @@ -4,4 +4,6 @@ set -euo pipefail # The input for this script is the person.json file. # TODO: Write a command to output the address of the person, all on one line, with a comma between each line. +jq -r '.address | join(", ")' person.json + # Your output should be exactly the string "35 Fashion Street, London, E1 6PX", but should not contain any quote characters. diff --git a/jq/script-03.sh b/jq/script-03.sh index 3566f03b..4396b677 100755 --- a/jq/script-03.sh +++ b/jq/script-03.sh @@ -4,4 +4,6 @@ set -euo pipefail # The input for this script is the person.json file. # TODO: Write a command to output the name of the person, then a comma, then their profession. +jq -r '.name + ", " + .profession' person.json + # Your output should be exactly the string "Selma, Software Engineer", but should not contain any quote characters. diff --git a/jq/script-04.sh b/jq/script-04.sh index 015997e1..a6793138 100755 --- a/jq/script-04.sh +++ b/jq/script-04.sh @@ -4,5 +4,7 @@ set -euo pipefail # The input for this script is the scores.json file. # TODO: Write a command to output just the names of each player, one per line. +jq -r '.[].name' scores.json + # Your output should contain 6 lines, each with just one word on it. # Your output should not contain any quote characters. diff --git a/jq/script-05.sh b/jq/script-05.sh index 993fc9ee..1cc6b51a 100755 --- a/jq/script-05.sh +++ b/jq/script-05.sh @@ -4,4 +4,5 @@ set -euo pipefail # The input for this script is the scores.json file. # TODO: Write a command to output the names of each player, as well as their city. +jq -r '.[] | .name + " " + .city' scores.json # Your output should contain 6 lines, each with two words on it. diff --git a/jq/script-06.sh b/jq/script-06.sh index 8b6e74c5..4e34b2be 100755 --- a/jq/script-06.sh +++ b/jq/script-06.sh @@ -4,5 +4,7 @@ set -euo pipefail # The input for this script is the scores.json file. # TODO: Write a command to output just the names of each player along with the score from their first attempt. +jq -r '.[] | [.name, .scores[0]] | join(" ")' scores.json + # Your output should contain 6 lines, each with one word and one number on it. # The first line should be "Ahmed 1" with no quotes. diff --git a/jq/script-07.sh b/jq/script-07.sh index d43f93d1..f789d9d5 100755 --- a/jq/script-07.sh +++ b/jq/script-07.sh @@ -4,5 +4,7 @@ set -euo pipefail # The input for this script is the scores.json file. # TODO: Write a command to output just the names of each player along with the score from their last attempt. +jq -r '.[] | [.name, .scores[-1]] | join(" ")' scores.json + # Your output should contain 6 lines, each with one word and one number on it. # The first line should be "Ahmed 4" with no quotes. diff --git a/jq/script-08.sh b/jq/script-08.sh index 6671fd1b..14ee92c1 100755 --- a/jq/script-08.sh +++ b/jq/script-08.sh @@ -4,5 +4,7 @@ set -euo pipefail # The input for this script is the scores.json file. # TODO: Write a command to output just the names of each player along with the number of times they've played the game. +jq -r '.[] | [.name, (.scores | length)] | join(" ")' scores.json + # Your output should contain 6 lines, each with one word and one number on it. # The first line should be "Ahmed 3" with no quotes. diff --git a/jq/script-09.sh b/jq/script-09.sh index c2536a53..996db6f2 100755 --- a/jq/script-09.sh +++ b/jq/script-09.sh @@ -4,5 +4,7 @@ set -euo pipefail # The input for this script is the scores.json file. # TODO: Write a command to output just the names of each player along with the total scores from all of their games added together. +jq -r '.[] | [.name, ([.scores[]] | add)] | join(" ")' scores.json + # Your output should contain 6 lines, each with one word and one number on it. # The first line should be "Ahmed 15" with no quotes. diff --git a/jq/script-10.sh b/jq/script-10.sh index 8e9d75f0..f0a4b835 100755 --- a/jq/script-10.sh +++ b/jq/script-10.sh @@ -4,4 +4,6 @@ set -euo pipefail # The input for this script is the scores.json file. # TODO: Write a command to output the total of adding together all players' first scores. +jq -r '[.[].scores[0]] | add' scores.json + # Your output should be exactly the number 54. diff --git a/jq/script-11.sh b/jq/script-11.sh index d2337a6b..7f1f2bea 100755 --- a/jq/script-11.sh +++ b/jq/script-11.sh @@ -4,4 +4,6 @@ set -euo pipefail # The input for this script is the scores.json file. # TODO: Write a command to output the total of adding together all scores from all games from all players. +jq -r '[.[].scores[]] | add' scores.json + # Your output should be exactly the number 164. From 9789692bbc44f03ce32139b57c04326a2be0700a Mon Sep 17 00:00:00 2001 From: Rashaad Ebrahim Date: Mon, 17 Nov 2025 17:34:41 +0200 Subject: [PATCH 2/2] script-10 and 11 updated to map --- jq/script-10.sh | 2 +- jq/script-11.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/jq/script-10.sh b/jq/script-10.sh index f0a4b835..f3eac05d 100755 --- a/jq/script-10.sh +++ b/jq/script-10.sh @@ -4,6 +4,6 @@ set -euo pipefail # The input for this script is the scores.json file. # TODO: Write a command to output the total of adding together all players' first scores. -jq -r '[.[].scores[0]] | add' scores.json +jq 'map(.scores[0]) | add' scores.json # Your output should be exactly the number 54. diff --git a/jq/script-11.sh b/jq/script-11.sh index 7f1f2bea..3b2b0dfe 100755 --- a/jq/script-11.sh +++ b/jq/script-11.sh @@ -4,6 +4,6 @@ set -euo pipefail # The input for this script is the scores.json file. # TODO: Write a command to output the total of adding together all scores from all games from all players. -jq -r '[.[].scores[]] | add' scores.json +jq 'map(.scores[]) | add' scores.json # Your output should be exactly the number 164.