From ded628b17c83f703c908853cec3e10da095257c3 Mon Sep 17 00:00:00 2001 From: Joseph Ayitey Date: Sun, 22 Mar 2026 14:22:17 +0100 Subject: [PATCH 01/11] Extract person name from JSON using awk --- jq/script-01.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/jq/script-01.sh b/jq/script-01.sh index 95827f688..01a278ead 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. +awk -F'"' '/"name"/ {print $4}' person.json From 8cd76b65b976a34280236796fccb5ce19249dd92 Mon Sep 17 00:00:00 2001 From: Joseph Ayitey Date: Sun, 22 Mar 2026 14:50:41 +0100 Subject: [PATCH 02/11] Extract address fields from JSON and format as comma-separated string using jq --- jq/script-02.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/jq/script-02.sh b/jq/script-02.sh index 21544d67b..50ab733a2 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 | to_entries | map(.value) | join(", ")' person.json From 589d5fc1d380587b6ee8d1965ed32ea49df7fe38 Mon Sep 17 00:00:00 2001 From: Joseph Ayitey Date: Sun, 22 Mar 2026 14:52:59 +0100 Subject: [PATCH 03/11] Extract name and profession from person.json as comma-separated values --- jq/script-03.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/jq/script-03.sh b/jq/script-03.sh index 3566f03ba..7c64617e3 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] | join(", ")' person.json \ No newline at end of file From ec26e416af307d420c600eb40de168415896cd07 Mon Sep 17 00:00:00 2001 From: Joseph Ayitey Date: Sun, 22 Mar 2026 14:55:40 +0100 Subject: [PATCH 04/11] Extract player names from JSON array using jq --- jq/script-04.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/jq/script-04.sh b/jq/script-04.sh index 015997e18..7fb3777d1 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' scores.json \ No newline at end of file From b1c96a78808dfda5cc0eb4eaa804d1d52d989144 Mon Sep 17 00:00:00 2001 From: Joseph Ayitey Date: Sun, 22 Mar 2026 14:57:41 +0100 Subject: [PATCH 05/11] Extract player names with their cities from scores.json --- jq/script-05.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/jq/script-05.sh b/jq/script-05.sh index 993fc9ee3..02f0a2bcc 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)"' scores.json \ No newline at end of file From 930b3c19abec21bd82e76695c42d43ca1ca82b53 Mon Sep 17 00:00:00 2001 From: Joseph Ayitey Date: Sun, 22 Mar 2026 15:12:03 +0100 Subject: [PATCH 06/11] Extract player names with their first attempt score from scores.json --- jq/script-06.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/jq/script-06.sh b/jq/script-06.sh index 8b6e74c52..4b895639d 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])"' scores.json \ No newline at end of file From 20a55d5471bdc5a51afb50974bd890cbbb9fc41d Mon Sep 17 00:00:00 2001 From: Joseph Ayitey Date: Sun, 22 Mar 2026 15:15:25 +0100 Subject: [PATCH 07/11] Extract player names with their last attempt score from scores.json --- jq/script-07.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/jq/script-07.sh b/jq/script-07.sh index d43f93d1b..46fb466cd 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])"' scores.json \ No newline at end of file From d7b1d9cdee8648f833d1f42b153ce56bf6148eb7 Mon Sep 17 00:00:00 2001 From: Joseph Ayitey Date: Sun, 22 Mar 2026 15:33:25 +0100 Subject: [PATCH 08/11] Extract player names with their game attempt count from scores.json --- jq/script-08.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/jq/script-08.sh b/jq/script-08.sh index 6671fd1ba..ecd84638c 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)"' scores.json \ No newline at end of file From f4b0af2a851e533f1f6fbe68af29e86a7cbbb162 Mon Sep 17 00:00:00 2001 From: Joseph Ayitey Date: Sun, 22 Mar 2026 15:37:17 +0100 Subject: [PATCH 09/11] Extract player names with total scores summed from all games --- jq/script-09.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/jq/script-09.sh b/jq/script-09.sh index c2536a536..169ea0d67 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)"' scores.json \ No newline at end of file From 01fc0d259cb1716e564a809bd0e120dede6764d3 Mon Sep 17 00:00:00 2001 From: Joseph Ayitey Date: Sun, 22 Mar 2026 15:43:37 +0100 Subject: [PATCH 10/11] Calculate sum of all players' first scores from scores.json --- jq/script-10.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/jq/script-10.sh b/jq/script-10.sh index 8e9d75f07..f6a017045 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 '[.[].scores[0]] | add' scores.json \ No newline at end of file From f13a93179020addaaad350f757edad18e13d17d7 Mon Sep 17 00:00:00 2001 From: Joseph Ayitey Date: Sun, 22 Mar 2026 15:44:49 +0100 Subject: [PATCH 11/11] Calculate total sum of all scores from all players and all games --- jq/script-11.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/jq/script-11.sh b/jq/script-11.sh index d2337a6b2..a55d91c16 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 '[.[].scores[]] | add' scores.json \ No newline at end of file