From a188cffa7833b33eb3ba2c9b8f5c68e088dbaee7 Mon Sep 17 00:00:00 2001 From: donarbl Date: Tue, 11 Mar 2025 16:53:40 +0000 Subject: [PATCH 1/3] jq exercises --- jq/script-01.sh | 2 ++ jq/script-02.sh | 3 +++ jq/script-03.sh | 2 ++ jq/script-04.sh | 7 +++++++ jq/script-05.sh | 8 ++++++++ jq/script-06.sh | 8 ++++++++ jq/script-07.sh | 8 ++++++++ 7 files changed, 38 insertions(+) diff --git a/jq/script-01.sh b/jq/script-01.sh index 95827f6..21292a9 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 +Selma \ No newline at end of file diff --git a/jq/script-02.sh b/jq/script-02.sh index 21544d6..b2ab49e 100755 --- a/jq/script-02.sh +++ b/jq/script-02.sh @@ -5,3 +5,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. # 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 + +35 Fashion Street,London,E1 6PX \ No newline at end of file diff --git a/jq/script-03.sh b/jq/script-03.sh index 3566f03..3538a8d 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. +q -r '[.name, .profession] | join (",")' person.json +Selma,Software Engineer \ No newline at end of file diff --git a/jq/script-04.sh b/jq/script-04.sh index 015997e..4e6d303 100755 --- a/jq/script-04.sh +++ b/jq/script-04.sh @@ -6,3 +6,10 @@ 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 +Ahmed +Basia +Mehmet +Leila +Piotr +Chandra \ No newline at end of file diff --git a/jq/script-05.sh b/jq/script-05.sh index 993fc9e..cdafe7f 100755 --- a/jq/script-05.sh +++ b/jq/script-05.sh @@ -5,3 +5,11 @@ 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 '.[] | "\(.nam +e) \(.city)"' scores.json +Ahmed London +Basia London +Mehmet Birmingham +Leila London +Piotr Glasgow +Chandra Birmingham \ No newline at end of file diff --git a/jq/script-06.sh b/jq/script-06.sh index 8b6e74c..424c9cb 100755 --- a/jq/script-06.sh +++ b/jq/script-06.sh @@ -6,3 +6,11 @@ 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 '.[] | "\(.nam +e) \(.scores[0])" ' scores.json +Ahmed 1 +Basia 22 +Mehmet 3 +Leila 1 +Piotr 15 +Chandra 12 \ No newline at end of file diff --git a/jq/script-07.sh b/jq/script-07.sh index d43f93d..301d115 100755 --- a/jq/script-07.sh +++ b/jq/script-07.sh @@ -6,3 +6,11 @@ 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])" ' scor +es.json +Ahmed 4 +Basia 6 +Mehmet 17 +Leila 1 +Piotr 8 +Chandra 6 \ No newline at end of file From 819deb2ebbd7b492348eb0cfbfa13ea3647e174d Mon Sep 17 00:00:00 2001 From: donarbl Date: Tue, 11 Mar 2025 16:54:25 +0000 Subject: [PATCH 2/3] score and name jq --- jq/script-08.sh | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/jq/script-08.sh b/jq/script-08.sh index 6671fd1..3e718e5 100755 --- a/jq/script-08.sh +++ b/jq/script-08.sh @@ -6,3 +6,10 @@ 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 +Ahmed 3 +Basia 3 +Mehmet 3 +Leila 1 +Piotr 5 +Chandra 2 \ No newline at end of file From d3431d6249fedc35b7e29e6a64771dc2db0ed740 Mon Sep 17 00:00:00 2001 From: donarbl Date: Tue, 11 Mar 2025 17:01:45 +0000 Subject: [PATCH 3/3] jq exercises --- jq/script-09.sh | 7 +++++++ jq/script-10.sh | 3 +++ jq/script-11.sh | 3 +++ 3 files changed, 13 insertions(+) diff --git a/jq/script-09.sh b/jq/script-09.sh index c2536a5..b85da8e 100755 --- a/jq/script-09.sh +++ b/jq/script-09.sh @@ -6,3 +6,10 @@ 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 +Ahmed 15 +Basia 37 +Mehmet 32 +Leila 1 +Piotr 61 +Chandra 18 \ No newline at end of file diff --git a/jq/script-10.sh b/jq/script-10.sh index 8e9d75f..ece53ab 100755 --- a/jq/script-10.sh +++ b/jq/script-10.sh @@ -5,3 +5,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. # Your output should be exactly the number 54. +jq -r '[.[].scores[0 +]] | add' scores.json +54 \ No newline at end of file diff --git a/jq/script-11.sh b/jq/script-11.sh index d2337a6..85abbf5 100755 --- a/jq/script-11.sh +++ b/jq/script-11.sh @@ -5,3 +5,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. # Your output should be exactly the number 164. +jq -r '[.[].scores[] +] | add' scores.json +164 \ No newline at end of file