From 701e5c8bbc4abb821596c8442f9834c3092c181b Mon Sep 17 00:00:00 2001 From: Abubakar-Meigag <113248042+Abubakar-Meigag@users.noreply.github.com> Date: Mon, 23 Mar 2026 14:40:27 +0000 Subject: [PATCH 1/2] London | 26-SDC-Mar | Beko | Sprint 2 | jq Complete jq exercises --- 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 ++ jq/script-10.sh | 2 ++ jq/script-11.sh | 2 ++ 11 files changed, 22 insertions(+) diff --git a/jq/script-01.sh b/jq/script-01.sh index 95827f68..5b93f585 100755 --- a/jq/script-01.sh +++ b/jq/script-01.sh @@ -5,3 +5,5 @@ 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' person.json \ No newline at end of file diff --git a/jq/script-02.sh b/jq/script-02.sh index 21544d67..c1d25ab8 100755 --- a/jq/script-02.sh +++ b/jq/script-02.sh @@ -5,3 +5,5 @@ 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(", ")' person.json \ No newline at end of file diff --git a/jq/script-03.sh b/jq/script-03.sh index 3566f03b..3f9bf26e 100755 --- a/jq/script-03.sh +++ b/jq/script-03.sh @@ -5,3 +5,5 @@ 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)"' person.json \ No newline at end of file diff --git a/jq/script-04.sh b/jq/script-04.sh index 015997e1..756dd670 100755 --- a/jq/script-04.sh +++ b/jq/script-04.sh @@ -6,3 +6,5 @@ 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' scores.json \ No newline at end of file diff --git a/jq/script-05.sh b/jq/script-05.sh index 993fc9ee..59273d60 100755 --- a/jq/script-05.sh +++ b/jq/script-05.sh @@ -5,3 +5,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. # Your output should contain 6 lines, each with two words on it. + +jq -r '.[].name + ", " + .[].city' scores.json \ No newline at end of file diff --git a/jq/script-06.sh b/jq/script-06.sh index 8b6e74c5..9ed92b06 100755 --- a/jq/script-06.sh +++ b/jq/script-06.sh @@ -6,3 +6,5 @@ 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)' scores.json \ No newline at end of file diff --git a/jq/script-07.sh b/jq/script-07.sh index d43f93d1..6adc640f 100755 --- a/jq/script-07.sh +++ b/jq/script-07.sh @@ -6,3 +6,5 @@ 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)' scores.json \ No newline at end of file diff --git a/jq/script-08.sh b/jq/script-08.sh index 6671fd1b..4bf04922 100755 --- a/jq/script-08.sh +++ b/jq/script-08.sh @@ -6,3 +6,5 @@ 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)' scores.json \ No newline at end of file diff --git a/jq/script-09.sh b/jq/script-09.sh index c2536a53..e0353aeb 100755 --- a/jq/script-09.sh +++ b/jq/script-09.sh @@ -6,3 +6,5 @@ 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)' scores.json \ No newline at end of file diff --git a/jq/script-10.sh b/jq/script-10.sh index 8e9d75f0..47c97b79 100755 --- a/jq/script-10.sh +++ b/jq/script-10.sh @@ -5,3 +5,5 @@ 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 'map(.scores[0]) | add' scores.json \ No newline at end of file diff --git a/jq/script-11.sh b/jq/script-11.sh index d2337a6b..e59145f2 100755 --- a/jq/script-11.sh +++ b/jq/script-11.sh @@ -5,3 +5,5 @@ 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 'map(.scores) | flatten | add' scores.json \ No newline at end of file From f6fcd5d0b55f64431c8b59774cc7eea070aa1abe Mon Sep 17 00:00:00 2001 From: Abubakar-Meigag <113248042+Abubakar-Meigag@users.noreply.github.com> Date: Tue, 12 May 2026 15:02:56 +0100 Subject: [PATCH 2/2] correct jq command in script 05 - PR review comment --- jq/script-05.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jq/script-05.sh b/jq/script-05.sh index 59273d60..70e952c6 100755 --- a/jq/script-05.sh +++ b/jq/script-05.sh @@ -6,4 +6,4 @@ set -euo pipefail # 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' scores.json \ No newline at end of file +jq -r '.[] | .name + ", " + .city' scores.json \ No newline at end of file