Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions jq/script-01.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
2 changes: 2 additions & 0 deletions jq/script-02.sh

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you build a solution that would work no matter how many lines of address there are?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@LonMcGregor , thanks for pointing it out. I just realised my solution was hard coded.
I have updated the jq command to use join(", ") so it works no matter how many lines of address there are.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good work! If you can clean up the shell-pipelines files (they don't need to be here) this task will be complete

Original file line number Diff line number Diff line change
Expand Up @@ -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
1 change: 1 addition & 0 deletions jq/script-03.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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)"' person.json
2 changes: 2 additions & 0 deletions jq/script-04.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
1 change: 1 addition & 0 deletions jq/script-05.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
1 change: 1 addition & 0 deletions jq/script-06.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
1 change: 1 addition & 0 deletions jq/script-07.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
1 change: 1 addition & 0 deletions jq/script-08.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
1 change: 1 addition & 0 deletions jq/script-09.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
1 change: 1 addition & 0 deletions jq/script-10.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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' scores.json
2 changes: 2 additions & 0 deletions jq/script-11.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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 '[.[].scores[]] | add' scores.json
2 changes: 2 additions & 0 deletions shell-pipelines/ls-grep/script-01.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,5 @@ set -euo pipefail

# TODO: Write a command to output the names of the files in the sample-files directory whose name contains at least one upper case letter.
# Your output should contain 11 files.

ls sample-files | grep "[A-Z]"
2 changes: 2 additions & 0 deletions shell-pipelines/ls-grep/script-02.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,5 @@ set -euo pipefail

# TODO: Write a command to output the names of the files in the sample-files directory whose name starts with an upper case letter.
# Your output should contain 10 files.

ls sample-files | grep "^[A-Z]"
2 changes: 2 additions & 0 deletions shell-pipelines/ls-grep/script-03.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,5 @@ set -euo pipefail

# TODO: Write a command to output the names of the files in the sample-files directory whose name starts with an upper case letter and doesn't contain any other upper case letters.
# Your output should contain 7 files.


3 changes: 3 additions & 0 deletions shell-pipelines/ls-grep/script-04.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,6 @@ set -euo pipefail

# TODO: Write a command to count the number of files in the sample-files directory whose name starts with an upper case letter and doesn't contain any other upper case letters.
# Your output should be the number 7.

# ls sample-files | grep "^[A-Z][a-z]*$"
ls sample-files | grep -c "^[A-Z][a-z]*$"
Empty file.
1 change: 1 addition & 0 deletions shell-pipelines/sort-uniq-head-tail/script-01.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,4 @@ set -euo pipefail
# The input for this script is the scores-table.txt file.
# TODO: Write a command to output scores-table.txt, with lines sorted by the person's name.
# The first line of your output should be "Ahmed London 1 10 4" (with no quotes). And the third line should be "Chandra Birmingham 12 6".
sort scores-table.txt
2 changes: 2 additions & 0 deletions shell-pipelines/sort-uniq-head-tail/script-02.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,5 @@ set -euo pipefail
# The input for this script is the scores-table.txt file.
# TODO: Write a command to output scores-table.txt, with lines sorted by the person's first score, descending.
# The first line of your output should be "Basia London 22 9 6" (with no quotes).

sort -k2 -r scores-table.txt
2 changes: 2 additions & 0 deletions shell-pipelines/sort-uniq-head-tail/script-03.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,5 @@ set -euo pipefail
# Basia London 22 9 6
# Piotr Glasgow 15 2 25 11 8
# Chandra Birmingham 12 6

sort -k3 -r -n scores-table.txt | head -n 3
2 changes: 2 additions & 0 deletions shell-pipelines/sort-uniq-head-tail/script-04.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,5 @@ set -euo pipefail
# The input for this script is the scores-table.txt file.
# TODO: Write a command to output scores-table.txt, with shows the line for the player whose first score was the second highest.
# Your output should be: "Piotr Glasgow 15 2 25 11 8" (without quotes).

sort -k3,3 -n -r scores-table.txt | head -n 2 | tail -n 1
2 changes: 2 additions & 0 deletions shell-pipelines/sort-uniq-head-tail/script-05.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,5 @@ set -euo pipefail
# TODO: Write a command to show a list of all events that have happened, without duplication.
# The order they're displayed doesn't matter, but we never want to see the same event listed twice.
# Your output should contain 6 lines.

sort events.txt | uniq
4 changes: 4 additions & 0 deletions shell-pipelines/sort-uniq-head-tail/script-06.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,7 @@ set -euo pipefail
# The input for this script is the events.txt file.
# TODO: Write a command to show how many times anyone has entered and exited.
# It should be clear from your script's output that there have been 5 Entry events and 4 Exit events.

echo " $(grep -c Entry events.txt) Entry events"

echo " $(grep -c Exit events.txt) Exit events"
3 changes: 3 additions & 0 deletions shell-pipelines/sort-uniq-head-tail/script-07.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,6 @@ set -euo pipefail
# TODO: Write a command to show how many times anyone has entered and exited.
# It should be clear from your script's output that there have been 5 Entry events and 4 Exit events.
# The word "Event" should not appear in your script's output.
echo "Entry: $(grep -c Entry events-with-timestamps.txt)"

echo "Exit: $(grep -c Exit events-with-timestamps.txt) "
2 changes: 2 additions & 0 deletions shell-pipelines/tr/script-01.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,5 @@ set -euo pipefail
# The author got feedback that they're using too many exclamation marks (!).
#
# TODO: Write a command to output the contents of text.txt with every exclamation mark (!) replaced with a full-stop (.).

cat text.txt | tr "!" "."
2 changes: 2 additions & 0 deletions shell-pipelines/tr/script-02.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,5 @@ set -euo pipefail
# so every Y should be a Z, and every Z should be a Y!
#
# TODO: Write a command to output the contents of text.txt with every Y and Z swapped (both upper and lower case).

cat text.txt | tr "yYzZ" "zZyY"
2 changes: 1 addition & 1 deletion shell-pipelines/tr/text.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ Dear Yara,

Mz apologies for sending this response so late. As zou know, there's been a lot going on!

Unfortunatelz I don't think I'll be able to make it to Yimbabwe, but but sounds amaying!
Unfortunatelz I don't think I'll be able to make it to Yimbabwe, but sounds amaying!

Hope zou're doing well, and enjoz the trip!

Expand Down
Loading