From 895afc0e24f51671beecfc65bb021fa06478f65e Mon Sep 17 00:00:00 2001 From: pathywang Date: Wed, 8 Jul 2026 13:11:51 +0100 Subject: [PATCH 1/4] complete ls-grep --- shell-pipelines/ls-grep/script-01.sh | 2 ++ shell-pipelines/ls-grep/script-02.sh | 2 ++ shell-pipelines/ls-grep/script-03.sh | 2 ++ shell-pipelines/ls-grep/script-04.sh | 2 ++ 4 files changed, 8 insertions(+) diff --git a/shell-pipelines/ls-grep/script-01.sh b/shell-pipelines/ls-grep/script-01.sh index 8c7d968a2..9897e717e 100755 --- a/shell-pipelines/ls-grep/script-01.sh +++ b/shell-pipelines/ls-grep/script-01.sh @@ -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]' \ No newline at end of file diff --git a/shell-pipelines/ls-grep/script-02.sh b/shell-pipelines/ls-grep/script-02.sh index 16f5f71d9..32cc5fefe 100755 --- a/shell-pipelines/ls-grep/script-02.sh +++ b/shell-pipelines/ls-grep/script-02.sh @@ -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]' diff --git a/shell-pipelines/ls-grep/script-03.sh b/shell-pipelines/ls-grep/script-03.sh index a302ab036..f1ed1cc45 100755 --- a/shell-pipelines/ls-grep/script-03.sh +++ b/shell-pipelines/ls-grep/script-03.sh @@ -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. + +ls sample-files | grep '^[A-Z][^A-Z]*$' \ No newline at end of file diff --git a/shell-pipelines/ls-grep/script-04.sh b/shell-pipelines/ls-grep/script-04.sh index c000b7e3b..e7049dbe6 100755 --- a/shell-pipelines/ls-grep/script-04.sh +++ b/shell-pipelines/ls-grep/script-04.sh @@ -4,3 +4,5 @@ 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]*$' | wc -l From 48ab0c84f284dd1ec4c9bd2d7a63a8e28ac823ea Mon Sep 17 00:00:00 2001 From: pathywang Date: Wed, 8 Jul 2026 18:53:16 +0100 Subject: [PATCH 2/4] complete sort --- shell-pipelines/sort-uniq-head-tail/script-01.sh | 2 ++ shell-pipelines/sort-uniq-head-tail/script-02.sh | 2 ++ shell-pipelines/sort-uniq-head-tail/script-03.sh | 2 ++ shell-pipelines/sort-uniq-head-tail/script-04.sh | 2 ++ shell-pipelines/sort-uniq-head-tail/script-05.sh | 2 ++ shell-pipelines/sort-uniq-head-tail/script-06.sh | 2 ++ shell-pipelines/sort-uniq-head-tail/script-07.sh | 2 ++ 7 files changed, 14 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..58a481fe1 100755 --- a/shell-pipelines/sort-uniq-head-tail/script-01.sh +++ b/shell-pipelines/sort-uniq-head-tail/script-01.sh @@ -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 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 -k1,1 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..4653df2ad 100755 --- a/shell-pipelines/sort-uniq-head-tail/script-02.sh +++ b/shell-pipelines/sort-uniq-head-tail/script-02.sh @@ -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 -k3,3nr scores-table.txt \ No newline at end of file diff --git a/shell-pipelines/sort-uniq-head-tail/script-03.sh b/shell-pipelines/sort-uniq-head-tail/script-03.sh index bcbaf3420..a4a1320dc 100755 --- a/shell-pipelines/sort-uniq-head-tail/script-03.sh +++ b/shell-pipelines/sort-uniq-head-tail/script-03.sh @@ -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,3nr scores-table.txt | head -n 3 \ No newline at end of file diff --git a/shell-pipelines/sort-uniq-head-tail/script-04.sh b/shell-pipelines/sort-uniq-head-tail/script-04.sh index 65a5cfba8..4745cff57 100755 --- a/shell-pipelines/sort-uniq-head-tail/script-04.sh +++ b/shell-pipelines/sort-uniq-head-tail/script-04.sh @@ -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,3nr scores-table.txt | head -n 2 | 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..0fa10a1c5 100755 --- a/shell-pipelines/sort-uniq-head-tail/script-05.sh +++ b/shell-pipelines/sort-uniq-head-tail/script-05.sh @@ -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 -u events.txt \ 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..4aa40dd1e 100755 --- a/shell-pipelines/sort-uniq-head-tail/script-06.sh +++ b/shell-pipelines/sort-uniq-head-tail/script-06.sh @@ -5,3 +5,5 @@ 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. + +awk '{print $1}' events.txt | sort | uniq -c \ No newline at end of file diff --git a/shell-pipelines/sort-uniq-head-tail/script-07.sh b/shell-pipelines/sort-uniq-head-tail/script-07.sh index 7fd07e1ff..df4af90c4 100755 --- a/shell-pipelines/sort-uniq-head-tail/script-07.sh +++ b/shell-pipelines/sort-uniq-head-tail/script-07.sh @@ -6,3 +6,5 @@ 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. + +awk 'NR>1 {print $3}' events-with-timestamps.txt | sort | uniq -c \ No newline at end of file From dd96253870fd484102fae582a0e0fc33bc0128a1 Mon Sep 17 00:00:00 2001 From: pathywang Date: Wed, 8 Jul 2026 19:01:37 +0100 Subject: [PATCH 3/4] complete tr --- shell-pipelines/tr/script-01.sh | 2 ++ shell-pipelines/tr/script-02.sh | 2 ++ 2 files changed, 4 insertions(+) diff --git a/shell-pipelines/tr/script-01.sh b/shell-pipelines/tr/script-01.sh index 8bb0211e9..89dce8e28 100755 --- a/shell-pipelines/tr/script-01.sh +++ b/shell-pipelines/tr/script-01.sh @@ -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 (.). + +tr '!' '.' < text.txt \ No newline at end of file diff --git a/shell-pipelines/tr/script-02.sh b/shell-pipelines/tr/script-02.sh index cf3a503a2..b5fde1e74 100755 --- a/shell-pipelines/tr/script-02.sh +++ b/shell-pipelines/tr/script-02.sh @@ -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). + + tr 'YyZz' 'ZzYy' < text.txt \ No newline at end of file From 6fc279f0978ebf8942cdf8e52b34c110aff1f8b6 Mon Sep 17 00:00:00 2001 From: pathywang Date: Fri, 10 Jul 2026 16:35:08 +0100 Subject: [PATCH 4/4] correction --- shell-pipelines/sort-uniq-head-tail/script-02.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/shell-pipelines/sort-uniq-head-tail/script-02.sh b/shell-pipelines/sort-uniq-head-tail/script-02.sh index 4653df2ad..af2811507 100755 --- a/shell-pipelines/sort-uniq-head-tail/script-02.sh +++ b/shell-pipelines/sort-uniq-head-tail/script-02.sh @@ -6,4 +6,4 @@ set -euo pipefail # 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 -k3,3nr scores-table.txt \ No newline at end of file +cat scores-table.txt | sort -k3,3nr -k1,1r