From c239a469afc37d95badd65a020c1d6492f919a26 Mon Sep 17 00:00:00 2001 From: sarawone Date: Fri, 17 Jul 2026 16:03:02 +0100 Subject: [PATCH 1/2] exercise_sort_uniq_head_tail --- shell-pipelines/sort-uniq-head-tail/script-01.sh | 3 +++ shell-pipelines/sort-uniq-head-tail/script-02.sh | 3 +++ shell-pipelines/sort-uniq-head-tail/script-03.sh | 3 +++ shell-pipelines/sort-uniq-head-tail/script-04.sh | 3 +++ shell-pipelines/sort-uniq-head-tail/script-05.sh | 3 +++ shell-pipelines/sort-uniq-head-tail/script-06.sh | 3 +++ shell-pipelines/sort-uniq-head-tail/script-07.sh | 3 +++ 7 files changed, 21 insertions(+) diff --git a/shell-pipelines/sort-uniq-head-tail/script-01.sh b/shell-pipelines/sort-uniq-head-tail/script-01.sh index 171e1f989..4ed92b37a 100755 --- a/shell-pipelines/sort-uniq-head-tail/script-01.sh +++ b/shell-pipelines/sort-uniq-head-tail/script-01.sh @@ -5,3 +5,6 @@ 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". + +cd shell-pipelines/sort-uniq-head-tail +sort scores-table.txt diff --git a/shell-pipelines/sort-uniq-head-tail/script-02.sh b/shell-pipelines/sort-uniq-head-tail/script-02.sh index 29c3c2524..0fe7dfd96 100755 --- a/shell-pipelines/sort-uniq-head-tail/script-02.sh +++ b/shell-pipelines/sort-uniq-head-tail/script-02.sh @@ -5,3 +5,6 @@ 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). + +cd shell-pipelines/sort-uniq-head-tail +sort -k3,3 -nr scores-table.txt diff --git a/shell-pipelines/sort-uniq-head-tail/script-03.sh b/shell-pipelines/sort-uniq-head-tail/script-03.sh index bcbaf3420..e65dcf489 100755 --- a/shell-pipelines/sort-uniq-head-tail/script-03.sh +++ b/shell-pipelines/sort-uniq-head-tail/script-03.sh @@ -8,3 +8,6 @@ set -euo pipefail # Basia London 22 9 6 # Piotr Glasgow 15 2 25 11 8 # Chandra Birmingham 12 6 + +cd shell-pipelines/sort-uniq-head-tail +sort -k3,3 -nr scores-table.txt | head -n 3 diff --git a/shell-pipelines/sort-uniq-head-tail/script-04.sh b/shell-pipelines/sort-uniq-head-tail/script-04.sh index 65a5cfba8..9b3399043 100755 --- a/shell-pipelines/sort-uniq-head-tail/script-04.sh +++ b/shell-pipelines/sort-uniq-head-tail/script-04.sh @@ -5,3 +5,6 @@ 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). + +cd shell-pipelines/sort-uniq-head-tail +sort -k3,3 -nr scores-table.txt | head -n 3| tail -n 1 \ No newline at end of file diff --git a/shell-pipelines/sort-uniq-head-tail/script-05.sh b/shell-pipelines/sort-uniq-head-tail/script-05.sh index a93cd9f9d..42c1e476b 100755 --- a/shell-pipelines/sort-uniq-head-tail/script-05.sh +++ b/shell-pipelines/sort-uniq-head-tail/script-05.sh @@ -6,3 +6,6 @@ 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. + +cd shell-pipelines/sort-uniq-head-tail +sort events.txt | uniq \ No newline at end of file diff --git a/shell-pipelines/sort-uniq-head-tail/script-06.sh b/shell-pipelines/sort-uniq-head-tail/script-06.sh index 715c7ae5c..3869682b0 100755 --- a/shell-pipelines/sort-uniq-head-tail/script-06.sh +++ b/shell-pipelines/sort-uniq-head-tail/script-06.sh @@ -5,3 +5,6 @@ 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. + +cd shell-pipelines/sort-uniq-head-tail +sort events.txt |awk '{print $1}' | uniq -c diff --git a/shell-pipelines/sort-uniq-head-tail/script-07.sh b/shell-pipelines/sort-uniq-head-tail/script-07.sh index 7fd07e1ff..514772168 100755 --- a/shell-pipelines/sort-uniq-head-tail/script-07.sh +++ b/shell-pipelines/sort-uniq-head-tail/script-07.sh @@ -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. + +cd shell-pipelines/sort-uniq-head-tail +tail -n +2 events-with-timestamps.txt | awk '{print $3} | sort | uniq -c From ecfe70ad67240feb6775518bffd3a5996c86b2f6 Mon Sep 17 00:00:00 2001 From: sarawone Date: Fri, 17 Jul 2026 16:04:14 +0100 Subject: [PATCH 2/2] exercise_tr --- shell-pipelines/tr/script-01.sh | 3 +++ shell-pipelines/tr/script-02.sh | 3 +++ 2 files changed, 6 insertions(+) diff --git a/shell-pipelines/tr/script-01.sh b/shell-pipelines/tr/script-01.sh index 8bb0211e9..402ec4561 100755 --- a/shell-pipelines/tr/script-01.sh +++ b/shell-pipelines/tr/script-01.sh @@ -6,3 +6,6 @@ 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 (.). + +cd shell-pipelines/tr +tr '!' '.' < text.txt diff --git a/shell-pipelines/tr/script-02.sh b/shell-pipelines/tr/script-02.sh index cf3a503a2..808343efa 100755 --- a/shell-pipelines/tr/script-02.sh +++ b/shell-pipelines/tr/script-02.sh @@ -7,3 +7,6 @@ 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). + +cd shell-pipelines/tr +tr 'YyZz' 'ZzYy'