Skip to content

LONDON | DONARA BLANC | MODULE TOOLS | SPRINT 2| SHELL PIPELINES #43

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
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
12 changes: 12 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,15 @@ 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]'
Ariane
Daniel
dHondt
HoChiMinh
KualaLumpur
Levi
London
NewYork
Niamh
Olga
York
11 changes: 11 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,14 @@ 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]
Ariane
Daniel
HoChiMinh
KualaLumpur
Levi
London
NewYork
Niamh
Olga
York
8 changes: 8 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,11 @@ 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.
ls sample-files | grep -E '^[A-Z][^A-Z]*$'
Copy link
Member

Choose a reason for hiding this comment

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

What does the -E do here? Why do you need it here when you didn't need it for script-02 which otherwise looks quite similar?

Ariane
Daniel
Levi
London
Niamh
Olga
York
1 change: 1 addition & 0 deletions shell-pipelines/ls-grep/script-04.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,4 @@ 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 -Ec "^[A-Z][^A-Z]*$"
8 changes: 8 additions & 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,11 @@ 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

Ahmed London 1 10 4
Basia London 22 9 6
Chandra Birmingham 12 6
Leila London 1
Mehmet Birmingham 3 12 17
Piotr Glasgow 15 2 25 11 8
8 changes: 8 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,11 @@ 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 -nrk3 scores-table.txt
Copy link
Member

Choose a reason for hiding this comment

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

This works, but personally I tend to separate out flags which take values to make it more clear which values are associated with which flag, i.e. I would probably write sort -nr -k3 scores-table.txt or sort -n -r -k3 scores-table.txt just to make it a little more clear the 3 is attached to the -k :)


Basia London 22 9 6
Piotr Glasgow 15 2 25 11 8
Chandra Birmingham 12 6
Mehmet Birmingham 3 12 17
Leila London 1
Ahmed London 1 10 4
4 changes: 4 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,7 @@ set -euo pipefail
# Basia London 22 9 6
# Piotr Glasgow 15 2 25 11 8
# Chandra Birmingham 12 6
sort -nrk3 scores-table.txt | head -3
Basia London 22 9 6
Piotr Glasgow 15 2 25 11 8
Chandra Birmingham 12 6
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 -nrk3 scores-table.txt | head -2 | tail -1
7 changes: 7 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,10 @@ 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
Entry German
Entry Mariana
Entry Sally
Exit German
Exit Mariana
Exit Sally
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.
sort -k1 events.txt | awk '{print $1}' | uniq -c

5 Entry
4 Exit
1 change: 1 addition & 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,4 @@ 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.
tail -9 events-with-timestamps.txt | sort -k3 | awk '{print $3}' | uniq -c
Copy link
Member

Choose a reason for hiding this comment

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

This works, but I probably would've started it with head -n+2 rather than tail -9 - can you think about why that is? What's the difference between the two?

12 changes: 12 additions & 0 deletions shell-pipelines/tr/script-01.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,15 @@ 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 '!' '.'
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.

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

Thanks,

Karolina
11 changes: 11 additions & 0 deletions shell-pipelines/tr/script-02.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,14 @@ 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).
Dear Zara,
Copy link
Member

Choose a reason for hiding this comment

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

I think the command is missing here? Can you add it?


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

Unfortunately I don't think I'll be able to make it to Zimbabwe, but but sounds amazing!

Hope you're doing well, and enjoy the trip!

Thanks,

Karolina