From 1fa12213d0b2a43865e4e5d15719383de5fcc496 Mon Sep 17 00:00:00 2001 From: Faithy4444 Date: Sun, 6 Jul 2025 19:18:25 +0200 Subject: [PATCH 1/5] script 1 to 3 --- individual-shell-tools/ls/script-01.sh | 1 + individual-shell-tools/ls/script-02.sh | 1 + 2 files changed, 2 insertions(+) diff --git a/individual-shell-tools/ls/script-01.sh b/individual-shell-tools/ls/script-01.sh index 241b62f5e..081f2c7c2 100755 --- a/individual-shell-tools/ls/script-01.sh +++ b/individual-shell-tools/ls/script-01.sh @@ -13,3 +13,4 @@ fi # TODO: Write a command to list the files and folders in this directory. # The output should be a list of names including child-directory, script-01.sh, script-02.sh, and more. +ls \ No newline at end of file diff --git a/individual-shell-tools/ls/script-02.sh b/individual-shell-tools/ls/script-02.sh index d0a5a10f4..48c16842c 100755 --- a/individual-shell-tools/ls/script-02.sh +++ b/individual-shell-tools/ls/script-02.sh @@ -4,3 +4,4 @@ set -euo pipefail # TODO: Write a command which lists all of the files in the directory named child-directory. # The output should be a list of names: helper-1.txt, helper-2.txt, helper-3.txt. +ls chile \ No newline at end of file From f56dc912b28515015c58b5f4e9ebffd520ab631d Mon Sep 17 00:00:00 2001 From: Faithy4444 Date: Wed, 23 Jul 2025 10:23:47 +0200 Subject: [PATCH 2/5] shell pipelines complete --- shell-pipelines/tr/script-01.sh | 2 ++ shell-pipelines/tr/script-02.sh | 1 + 2 files changed, 3 insertions(+) diff --git a/shell-pipelines/tr/script-01.sh b/shell-pipelines/tr/script-01.sh index 8bb0211e9..8a38ce112 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..8598e779c 100755 --- a/shell-pipelines/tr/script-02.sh +++ b/shell-pipelines/tr/script-02.sh @@ -7,3 +7,4 @@ 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 From 689f85478bfa9acab5b5990d26ae6ae4667cff46 Mon Sep 17 00:00:00 2001 From: Faithy4444 Date: Wed, 23 Jul 2025 10:24:46 +0200 Subject: [PATCH 3/5] shell pipelines --- shell-pipelines/ls-grep/script-01.sh | 2 ++ shell-pipelines/ls-grep/script-02.sh | 1 + shell-pipelines/ls-grep/script-03.sh | 2 ++ shell-pipelines/ls-grep/script-04.sh | 2 ++ 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 | 3 +++ shell-pipelines/sort-uniq-head-tail/script-07.sh | 3 +++ 11 files changed, 23 insertions(+) diff --git a/shell-pipelines/ls-grep/script-01.sh b/shell-pipelines/ls-grep/script-01.sh index 8c7d968a2..615407dd2 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..61a9fc73f 100755 --- a/shell-pipelines/ls-grep/script-02.sh +++ b/shell-pipelines/ls-grep/script-02.sh @@ -4,3 +4,4 @@ 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]" \ No newline at end of file diff --git a/shell-pipelines/ls-grep/script-03.sh b/shell-pipelines/ls-grep/script-03.sh index a302ab036..ce70cb5ff 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..c900a5215 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 \ No newline at end of file diff --git a/shell-pipelines/sort-uniq-head-tail/script-01.sh b/shell-pipelines/sort-uniq-head-tail/script-01.sh index 171e1f989..0972fe799 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 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..b4dadcb08 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 -nr 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..8475aaa35 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 -nr 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..be3b61717 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 -nr 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..1f0dc4d89 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 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..4fd550298 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. + +echo "$(grep -c "Entry" events.txt) Entry events" +echo "$(grep -c "Exit" events.txt) Exit events" \ 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..a27a9ea4e 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. + +echo "Entries: $(grep -c 'Entry' events-with-timestamps.txt)" +echo "Exits: $(grep -c 'Exit' events-with-timestamps.txt)" \ No newline at end of file From d05f0a0ceec27c23b327329041e85988f147f9cd Mon Sep 17 00:00:00 2001 From: Faithy4444 Date: Thu, 23 Oct 2025 03:14:57 +0200 Subject: [PATCH 4/5] Remove accidental individual-shell-tools changes --- shell-pipelines/ls-grep/script-04.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/shell-pipelines/ls-grep/script-04.sh b/shell-pipelines/ls-grep/script-04.sh index c900a5215..58f5691dc 100755 --- a/shell-pipelines/ls-grep/script-04.sh +++ b/shell-pipelines/ls-grep/script-04.sh @@ -5,4 +5,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 "^[A-Z][^A-Z]*$" |wc -l \ No newline at end of file +ls sample-files | grep -c "^[A-Z][^A-Z]*$" From 48eeb612122a78b7952f6a08da2dff7ae3d02803 Mon Sep 17 00:00:00 2001 From: Faithy4444 Date: Thu, 23 Oct 2025 04:12:33 +0200 Subject: [PATCH 5/5] ls commands removed --- individual-shell-tools/ls/script-01.sh | 16 ---------------- individual-shell-tools/ls/script-02.sh | 7 ------- 2 files changed, 23 deletions(-) delete mode 100755 individual-shell-tools/ls/script-01.sh delete mode 100755 individual-shell-tools/ls/script-02.sh diff --git a/individual-shell-tools/ls/script-01.sh b/individual-shell-tools/ls/script-01.sh deleted file mode 100755 index 081f2c7c2..000000000 --- a/individual-shell-tools/ls/script-01.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/bash - -set -euo pipefail - -# Do not change this part of the script - only change after the TODO comment. - -script_dir="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &> /dev/null && pwd)" -if [[ "${script_dir}" != "$(pwd)" ]]; then - echo >&2 "ERROR: You haven't cd'd into the correct directory." - echo >&2 "For each exercise, you should cd to the directory containing the script before running it." - exit 1 -fi - -# TODO: Write a command to list the files and folders in this directory. -# The output should be a list of names including child-directory, script-01.sh, script-02.sh, and more. -ls \ No newline at end of file diff --git a/individual-shell-tools/ls/script-02.sh b/individual-shell-tools/ls/script-02.sh deleted file mode 100755 index 48c16842c..000000000 --- a/individual-shell-tools/ls/script-02.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash - -set -euo pipefail - -# TODO: Write a command which lists all of the files in the directory named child-directory. -# The output should be a list of names: helper-1.txt, helper-2.txt, helper-3.txt. -ls chile \ No newline at end of file