From 8493d9cd896492d99c923a0d28e91f5d0f623d71 Mon Sep 17 00:00:00 2001 From: Fithi Teklom Date: Wed, 22 Jul 2026 14:11:40 +0100 Subject: [PATCH 1/3] Complete jq exercises. --- jq/script-01.sh | 1 + jq/script-02.sh | 1 + jq/script-03.sh | 1 + jq/script-04.sh | 1 + jq/script-05.sh | 1 + jq/script-06.sh | 1 + jq/script-07.sh | 1 + jq/script-08.sh | 1 + jq/script-09.sh | 1 + jq/script-10.sh | 1 + jq/script-11.sh | 1 + 11 files changed, 11 insertions(+) diff --git a/jq/script-01.sh b/jq/script-01.sh index 95827f688..3329a6990 100755 --- a/jq/script-01.sh +++ b/jq/script-01.sh @@ -5,3 +5,4 @@ set -euo pipefail # The input for this script is the person.json file. # TODO: Write a command to output the name of the person. # Your output should be exactly the string "Selma", but should not contain any quote characters. +jq -r '.name' jq/person.json diff --git a/jq/script-02.sh b/jq/script-02.sh index 21544d67b..abe0b0955 100755 --- a/jq/script-02.sh +++ b/jq/script-02.sh @@ -5,3 +5,4 @@ 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. # Your output should be exactly the string "35 Fashion Street, London, E1 6PX", but should not contain any quote characters. +jq -r '.address | join(",")' jq/person.json diff --git a/jq/script-03.sh b/jq/script-03.sh index 3566f03ba..d9deae67f 100755 --- a/jq/script-03.sh +++ b/jq/script-03.sh @@ -5,3 +5,4 @@ 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. # Your output should be exactly the string "Selma, Software Engineer", but should not contain any quote characters. +jq -r '.name + "," + .profession' jq/person.json \ No newline at end of file diff --git a/jq/script-04.sh b/jq/script-04.sh index 015997e18..8589b5988 100755 --- a/jq/script-04.sh +++ b/jq/script-04.sh @@ -6,3 +6,4 @@ set -euo pipefail # TODO: Write a command to output just the names of each player, one per line. # Your output should contain 6 lines, each with just one word on it. # Your output should not contain any quote characters. +jq -r .[].name jq/scores.json diff --git a/jq/script-05.sh b/jq/script-05.sh index 993fc9ee3..aadf52da7 100755 --- a/jq/script-05.sh +++ b/jq/script-05.sh @@ -5,3 +5,4 @@ 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. # Your output should contain 6 lines, each with two words on it. +jq -r '.[] | .name + " " + .city' jq/scores.json diff --git a/jq/script-06.sh b/jq/script-06.sh index 8b6e74c52..4272cfcf6 100755 --- a/jq/script-06.sh +++ b/jq/script-06.sh @@ -6,3 +6,4 @@ set -euo pipefail # TODO: Write a command to output just the names of each player along with the score from their first attempt. # 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. +jq -r '.[] |.name + " " + (.scores[0] | tostring)' jq/scores.json diff --git a/jq/script-07.sh b/jq/script-07.sh index d43f93d1b..892e74582 100755 --- a/jq/script-07.sh +++ b/jq/script-07.sh @@ -6,3 +6,4 @@ set -euo pipefail # TODO: Write a command to output just the names of each player along with the score from their last attempt. # 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. +jq -r '.[] | .name + " " + (.scores[-1] | tostring)' jq/scores.json diff --git a/jq/script-08.sh b/jq/script-08.sh index 6671fd1ba..4aee9bd7f 100755 --- a/jq/script-08.sh +++ b/jq/script-08.sh @@ -6,3 +6,4 @@ set -euo pipefail # TODO: Write a command to output just the names of each player along with the number of times they've played the game. # 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. +jq -r '.[] | .name + " " + ((.scores | length) | tostring)' jq/scores.json diff --git a/jq/script-09.sh b/jq/script-09.sh index c2536a536..3d11b108d 100755 --- a/jq/script-09.sh +++ b/jq/script-09.sh @@ -6,3 +6,4 @@ set -euo pipefail # TODO: Write a command to output just the names of each player along with the total scores from all of their games added together. # 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. +jq -r '.[] | .name + " " + ((.scores | add) | tostring)' jq/scores.json diff --git a/jq/script-10.sh b/jq/script-10.sh index 8e9d75f07..7d3927a05 100755 --- a/jq/script-10.sh +++ b/jq/script-10.sh @@ -5,3 +5,4 @@ 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. # Your output should be exactly the number 54. +jq -r '[.[].scores[0]] | add | tostring' jq/scores.json diff --git a/jq/script-11.sh b/jq/script-11.sh index d2337a6b2..878fa63fd 100755 --- a/jq/script-11.sh +++ b/jq/script-11.sh @@ -5,3 +5,4 @@ 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. # Your output should be exactly the number 164. +jq -r '[.[].scores] | flatten | add | tostring' jq/scores.json From 439ea49576f6de21d044f1e065679f56062f783d Mon Sep 17 00:00:00 2001 From: Fithi Teklom Date: Wed, 22 Jul 2026 14:19:31 +0100 Subject: [PATCH 2/3] fix what made the test fail by correcting the path. --- 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 7d3927a05..ceccd4872 100755 --- a/jq/script-10.sh +++ b/jq/script-10.sh @@ -5,4 +5,4 @@ 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. # Your output should be exactly the number 54. -jq -r '[.[].scores[0]] | add | tostring' jq/scores.json +jq -r '[.[].scores[0]] | add | tostring' scores.json diff --git a/jq/script-11.sh b/jq/script-11.sh index 878fa63fd..4d260e4e2 100755 --- a/jq/script-11.sh +++ b/jq/script-11.sh @@ -5,4 +5,4 @@ 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. # Your output should be exactly the number 164. -jq -r '[.[].scores] | flatten | add | tostring' jq/scores.json +jq -r '[.[].scores] | flatten | add | tostring' scores.json From aad2286eb85156d4b26e608f1c34f7f22c719b16 Mon Sep 17 00:00:00 2001 From: Fithi Teklom Date: Wed, 22 Jul 2026 14:40:55 +0100 Subject: [PATCH 3/3] Remove the jq path. --- jq/script-01.sh | 2 +- jq/script-02.sh | 2 +- jq/script-03.sh | 2 +- jq/script-04.sh | 2 +- jq/script-05.sh | 2 +- jq/script-06.sh | 2 +- jq/script-07.sh | 2 +- jq/script-08.sh | 2 +- jq/script-09.sh | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/jq/script-01.sh b/jq/script-01.sh index 3329a6990..0d69705d1 100755 --- a/jq/script-01.sh +++ b/jq/script-01.sh @@ -5,4 +5,4 @@ set -euo pipefail # The input for this script is the person.json file. # TODO: Write a command to output the name of the person. # Your output should be exactly the string "Selma", but should not contain any quote characters. -jq -r '.name' jq/person.json +jq -r '.name' person.json diff --git a/jq/script-02.sh b/jq/script-02.sh index abe0b0955..888357919 100755 --- a/jq/script-02.sh +++ b/jq/script-02.sh @@ -5,4 +5,4 @@ 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. # Your output should be exactly the string "35 Fashion Street, London, E1 6PX", but should not contain any quote characters. -jq -r '.address | join(",")' jq/person.json +jq -r '.address | join(",")' person.json diff --git a/jq/script-03.sh b/jq/script-03.sh index d9deae67f..74459b7d3 100755 --- a/jq/script-03.sh +++ b/jq/script-03.sh @@ -5,4 +5,4 @@ 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. # Your output should be exactly the string "Selma, Software Engineer", but should not contain any quote characters. -jq -r '.name + "," + .profession' jq/person.json \ No newline at end of file +jq -r '.name + "," + .profession' person.json \ No newline at end of file diff --git a/jq/script-04.sh b/jq/script-04.sh index 8589b5988..465074cc3 100755 --- a/jq/script-04.sh +++ b/jq/script-04.sh @@ -6,4 +6,4 @@ set -euo pipefail # TODO: Write a command to output just the names of each player, one per line. # Your output should contain 6 lines, each with just one word on it. # Your output should not contain any quote characters. -jq -r .[].name jq/scores.json +jq -r .[].name scores.json diff --git a/jq/script-05.sh b/jq/script-05.sh index aadf52da7..354b7adb6 100755 --- a/jq/script-05.sh +++ b/jq/script-05.sh @@ -5,4 +5,4 @@ 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. # Your output should contain 6 lines, each with two words on it. -jq -r '.[] | .name + " " + .city' jq/scores.json +jq -r '.[] | .name + " " + .city' scores.json diff --git a/jq/script-06.sh b/jq/script-06.sh index 4272cfcf6..ea236fd8a 100755 --- a/jq/script-06.sh +++ b/jq/script-06.sh @@ -6,4 +6,4 @@ set -euo pipefail # TODO: Write a command to output just the names of each player along with the score from their first attempt. # 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. -jq -r '.[] |.name + " " + (.scores[0] | tostring)' jq/scores.json +jq -r '.[] |.name + " " + (.scores[0] | tostring)' scores.json diff --git a/jq/script-07.sh b/jq/script-07.sh index 892e74582..949dc1487 100755 --- a/jq/script-07.sh +++ b/jq/script-07.sh @@ -6,4 +6,4 @@ set -euo pipefail # TODO: Write a command to output just the names of each player along with the score from their last attempt. # 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. -jq -r '.[] | .name + " " + (.scores[-1] | tostring)' jq/scores.json +jq -r '.[] | .name + " " + (.scores[-1] | tostring)' scores.json diff --git a/jq/script-08.sh b/jq/script-08.sh index 4aee9bd7f..59431e3a2 100755 --- a/jq/script-08.sh +++ b/jq/script-08.sh @@ -6,4 +6,4 @@ set -euo pipefail # TODO: Write a command to output just the names of each player along with the number of times they've played the game. # 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. -jq -r '.[] | .name + " " + ((.scores | length) | tostring)' jq/scores.json +jq -r '.[] | .name + " " + ((.scores | length) | tostring)' scores.json diff --git a/jq/script-09.sh b/jq/script-09.sh index 3d11b108d..2bbb7ef39 100755 --- a/jq/script-09.sh +++ b/jq/script-09.sh @@ -6,4 +6,4 @@ set -euo pipefail # TODO: Write a command to output just the names of each player along with the total scores from all of their games added together. # 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. -jq -r '.[] | .name + " " + ((.scores | add) | tostring)' jq/scores.json +jq -r '.[] | .name + " " + ((.scores | add) | tostring)' scores.json