diff --git a/jq/script-01.sh b/jq/script-01.sh index 95827f6..127a0a0 100755 --- a/jq/script-01.sh +++ b/jq/script-01.sh @@ -3,5 +3,7 @@ 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. +# Command to output the name of the person. +# Output is the string "Selma", but does 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 21544d6..a5188e8 100755 --- a/jq/script-02.sh +++ b/jq/script-02.sh @@ -3,5 +3,11 @@ 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. +# Command to output the address of the person, all on one line, with a comma between each line. +# Output is the string "35 Fashion Street, London, E1 6PX", but does not contain any quote characters. + +# Solution 1 +# jq -rj '.address.[0] + ", ",.address.[1] + ", ",.address.[2] + "\n"' person.json + +# Solution 2 +jq -rj '.address | join(", ") + "\n"' person.json \ No newline at end of file diff --git a/jq/script-03.sh b/jq/script-03.sh index 3566f03..9bfdea8 100755 --- a/jq/script-03.sh +++ b/jq/script-03.sh @@ -3,5 +3,7 @@ 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. +# Command to output the name of the person, then a comma, then their profession. +# Output is the string "Selma, Software Engineer", but does 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 015997e..8f95af5 100755 --- a/jq/script-04.sh +++ b/jq/script-04.sh @@ -3,6 +3,8 @@ 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. -# Your output should contain 6 lines, each with just one word on it. -# Your output should not contain any quote characters. +# Command to output just the names of each player, one per line. +# output contains 6 lines, each with just one word on it. +# output does 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 993fc9e..ebbe70b 100755 --- a/jq/script-05.sh +++ b/jq/script-05.sh @@ -3,5 +3,7 @@ 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. +# Command to output the names of each player, as well as their city. +# output contains 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 8b6e74c..df00e19 100755 --- a/jq/script-06.sh +++ b/jq/script-06.sh @@ -3,6 +3,8 @@ 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. -# 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. +# Command to output just the names of each player along with the score from their first attempt. +# output contains 6 lines, each with one word and one number on it. +# The first line is "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 d43f93d..7f2ba81 100755 --- a/jq/script-07.sh +++ b/jq/script-07.sh @@ -3,6 +3,8 @@ 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. -# 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. +# Command to output just the names of each player along with the score from their last attempt. +# output contains 6 lines, each with one word and one number on it. +# The first line is "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 6671fd1..e2d2582 100755 --- a/jq/script-08.sh +++ b/jq/script-08.sh @@ -3,6 +3,8 @@ 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. -# 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. +# Command to output just the names of each player along with the number of times they've played the game. +# output contains 6 lines, each with one word and one number on it. +# The first line is "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 c2536a5..41175d0 100755 --- a/jq/script-09.sh +++ b/jq/script-09.sh @@ -3,6 +3,8 @@ 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. -# 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. +# Command to output just the names of each player along with the total scores from all of their games added together. +# Output contains 6 lines, each with one word and one number on it. +# The first line is "Ahmed 15" with no quotes. + +jq -r '.[] | .name + " " + ((.scores | add)|tostring)' scores.json diff --git a/jq/script-10.sh b/jq/script-10.sh index 8e9d75f..ada3853 100755 --- a/jq/script-10.sh +++ b/jq/script-10.sh @@ -3,5 +3,7 @@ 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. +# Command to output the total of adding together all players' first scores. +# output is exactly the number 54. + +jq '[.[].scores[0]] | add' scores.json diff --git a/jq/script-11.sh b/jq/script-11.sh index d2337a6..422dfae 100755 --- a/jq/script-11.sh +++ b/jq/script-11.sh @@ -3,5 +3,7 @@ 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. +# Command to output the total of adding together all scores from all games from all players. +# Output is exactly the number 164. + +jq '[.[].scores | add] | add' scores.json \ No newline at end of file