From 50925a9e4cf0a146ea95f0146d21f83c3e4c82e5 Mon Sep 17 00:00:00 2001 From: Luke-Manyamazi Date: Sat, 12 Jul 2025 17:24:48 +0200 Subject: [PATCH 01/37] added script commands to ls exercise 1 --- individual-shell-tools/ls/script-01.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/individual-shell-tools/ls/script-01.sh b/individual-shell-tools/ls/script-01.sh index 241b62f5e..46c07f1ab 100755 --- a/individual-shell-tools/ls/script-01.sh +++ b/individual-shell-tools/ls/script-01.sh @@ -13,3 +13,5 @@ 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. +cd /home/luke/CYF/SDC/Module-Tools/individual-shell-tools/ls +ls From 6a2e2ac74b7545798f41e90c8a6ebbcc9266c763 Mon Sep 17 00:00:00 2001 From: Luke-Manyamazi Date: Sat, 12 Jul 2025 17:26:20 +0200 Subject: [PATCH 02/37] added code for exercise ls 2 --- individual-shell-tools/ls/script-02.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/individual-shell-tools/ls/script-02.sh b/individual-shell-tools/ls/script-02.sh index d0a5a10f4..e9c349be2 100755 --- a/individual-shell-tools/ls/script-02.sh +++ b/individual-shell-tools/ls/script-02.sh @@ -4,3 +4,5 @@ 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. +cd /home/luke/CYF/SDC/Module-Tools/individual-shell-tools/ls/child-directory +ls \ No newline at end of file From 0b11f9bbfd6f57c7b5ce5a6ea0e39192d052c36e Mon Sep 17 00:00:00 2001 From: Luke-Manyamazi Date: Sat, 12 Jul 2025 17:27:54 +0200 Subject: [PATCH 03/37] added code fro the recursive list --- individual-shell-tools/ls/script-03.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/individual-shell-tools/ls/script-03.sh b/individual-shell-tools/ls/script-03.sh index 781216d21..aa3b0c956 100755 --- a/individual-shell-tools/ls/script-03.sh +++ b/individual-shell-tools/ls/script-03.sh @@ -5,3 +5,5 @@ set -euo pipefail # TODO: Write a command which _recursively_ lists all of the files and folders in this directory _and_ all of the files inside those folders. # The output should be a list of names including: child-directory, script-01.sh, helper-1.txt (and more). # The formatting of the output doesn't matter. +cd /home/luke/CYF/SDC/Module-Tools/individual-shell-tools/ls +ls -R From 614a64538de59bb37229a4dfab346044ba66bd92 Mon Sep 17 00:00:00 2001 From: Luke-Manyamazi Date: Sat, 12 Jul 2025 18:09:51 +0200 Subject: [PATCH 04/37] code for ls exercise 4 --- individual-shell-tools/ls/script-04.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/individual-shell-tools/ls/script-04.sh b/individual-shell-tools/ls/script-04.sh index 72f3817b3..468753894 100755 --- a/individual-shell-tools/ls/script-04.sh +++ b/individual-shell-tools/ls/script-04.sh @@ -15,9 +15,10 @@ echo "First exercise (sorted newest to oldest):" # TODO: Write a command which lists the files in the child-directory directory, one per line, sorted so that the most recently modified file is first. # The output should be a list of names in this order, one per line: helper-3.txt, helper-1.txt, helper-2.txt. - +cd "${script_dir}/child-directory" && ls -t echo "Second exercise (sorted oldest to newest):" # TODO: Write a command which does the same as above, but sorted in the opposite order (oldest first). # The output should be a list of names in this order, one per line: helper-2.txt, helper-1.txt, helper-3.txt. +ls -tr From c6a3f9978b31b3ec67bd208dc145f5fd922d7cd9 Mon Sep 17 00:00:00 2001 From: Luke-Manyamazi Date: Sat, 12 Jul 2025 21:42:04 +0200 Subject: [PATCH 05/37] added code to read helper-1.txt --- individual-shell-tools/cat/script-01.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/individual-shell-tools/cat/script-01.sh b/individual-shell-tools/cat/script-01.sh index c85053e0f..4e1122e0a 100755 --- a/individual-shell-tools/cat/script-01.sh +++ b/individual-shell-tools/cat/script-01.sh @@ -4,3 +4,4 @@ set -euo pipefail # TODO: Write a command to output the contents of the helper-1.txt file inside the helper-files directory to the terminal. # The output of this command should be "Once upon a time...". +cat /home/luke/CYF/SDC/Module-Tools/individual-shell-tools/helper-files/helper-1.txt From 18507cbd91120f06be923af8d5450dad61d18feb Mon Sep 17 00:00:00 2001 From: Luke-Manyamazi Date: Sun, 13 Jul 2025 10:40:14 +0200 Subject: [PATCH 06/37] add code for cat 2 --- individual-shell-tools/cat/script-02.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/individual-shell-tools/cat/script-02.sh b/individual-shell-tools/cat/script-02.sh index 01bbd5eab..ea234743b 100755 --- a/individual-shell-tools/cat/script-02.sh +++ b/individual-shell-tools/cat/script-02.sh @@ -11,3 +11,5 @@ set -euo pipefail # It looked delicious. # I was tempted to take a bite of it. # But this seemed like a bad idea... +cat "$(dirname "$0")"/../helper-files/*.txt + From 8682de1ca38ed06edf0169dc480a34639e831805 Mon Sep 17 00:00:00 2001 From: Luke-Manyamazi Date: Sun, 13 Jul 2025 10:50:42 +0200 Subject: [PATCH 07/37] added code for cat 3 --- individual-shell-tools/cat/script-03.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/individual-shell-tools/cat/script-03.sh b/individual-shell-tools/cat/script-03.sh index 37573b0c1..3c3bc91fb 100755 --- a/individual-shell-tools/cat/script-03.sh +++ b/individual-shell-tools/cat/script-03.sh @@ -9,3 +9,4 @@ set -euo pipefail # 1 It looked delicious. # 2 I was tempted to take a bite of it. # 3 But this seemed like a bad idea... +cat -n "$(dirname "$0")"/../helper-files/helper-3.txt From 872619291d0d19e7e96acd0b7b5e7bd55d73bb45 Mon Sep 17 00:00:00 2001 From: Luke-Manyamazi Date: Sun, 13 Jul 2025 10:51:59 +0200 Subject: [PATCH 08/37] added code for cat 4 --- individual-shell-tools/cat/script-04-stretch.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/individual-shell-tools/cat/script-04-stretch.sh b/individual-shell-tools/cat/script-04-stretch.sh index 00fe3c48b..067a5d6f3 100755 --- a/individual-shell-tools/cat/script-04-stretch.sh +++ b/individual-shell-tools/cat/script-04-stretch.sh @@ -13,3 +13,4 @@ set -euo pipefail # 3 It looked delicious. # 4 I was tempted to take a bite of it. # 5 But this seemed like a bad idea... +cat -n "$(dirname "$0")"/../helper-files/*.txt From 43199e4ec1d351a1bbb3f97eb4b72580466b93c6 Mon Sep 17 00:00:00 2001 From: Luke-Manyamazi Date: Sun, 13 Jul 2025 11:46:16 +0200 Subject: [PATCH 09/37] added code for wc 1 --- individual-shell-tools/wc/script-01.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/individual-shell-tools/wc/script-01.sh b/individual-shell-tools/wc/script-01.sh index c9dd6e5df..8695f8fb4 100755 --- a/individual-shell-tools/wc/script-01.sh +++ b/individual-shell-tools/wc/script-01.sh @@ -4,3 +4,4 @@ set -euo pipefail # TODO: Write a command to output the number of words in the file helper-files/helper-3.txt. # The output should include the number 19. The output should not include the number 92. +wc -w "$(dirname "$0")"/../helper-files/helper-3.txt | awk '{print $1}' From 1d40453f4f2a24055d72fb01959c718816ca02e5 Mon Sep 17 00:00:00 2001 From: Luke-Manyamazi Date: Sun, 13 Jul 2025 13:36:47 +0200 Subject: [PATCH 10/37] added code for wc 2 --- individual-shell-tools/wc/script-02.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/individual-shell-tools/wc/script-02.sh b/individual-shell-tools/wc/script-02.sh index 8feeb1a62..ffbcdb12f 100755 --- a/individual-shell-tools/wc/script-02.sh +++ b/individual-shell-tools/wc/script-02.sh @@ -4,3 +4,4 @@ set -euo pipefail # TODO: Write a command to output the number of lines in the file helper-files/helper-3.txt. # The output should include the number 3. The output should not include the number 19. +wc -l "$(dirname "$0")"/../helper-files/helper-3.txt | awk '{print $1}' From 94c79419d3e2b00304b20bd491ec214f24b85087 Mon Sep 17 00:00:00 2001 From: Luke-Manyamazi Date: Sun, 13 Jul 2025 13:41:54 +0200 Subject: [PATCH 11/37] added the count count for wc exercise 3 --- individual-shell-tools/wc/script-03.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/individual-shell-tools/wc/script-03.sh b/individual-shell-tools/wc/script-03.sh index 6b2e9d3d1..fc1458eb3 100755 --- a/individual-shell-tools/wc/script-03.sh +++ b/individual-shell-tools/wc/script-03.sh @@ -8,3 +8,4 @@ set -euo pipefail # 1 7 39 ../helper-files/helper-2.txt # 3 19 92 ../helper-files/helper-3.txt # 5 30 151 total +wc -lwm "$(dirname "$0")"/../helper-files/*.txt From fc0bd02568ad5e24ed1224d7610caab40b4db4dd Mon Sep 17 00:00:00 2001 From: Luke-Manyamazi Date: Sun, 13 Jul 2025 19:30:43 +0200 Subject: [PATCH 12/37] added code to the grep exercise 1 --- individual-shell-tools/grep/script-01.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/individual-shell-tools/grep/script-01.sh b/individual-shell-tools/grep/script-01.sh index fb05f42f2..da8d1cd2a 100755 --- a/individual-shell-tools/grep/script-01.sh +++ b/individual-shell-tools/grep/script-01.sh @@ -4,3 +4,5 @@ set -euo pipefail # TODO: Write a command to output every line in dialogue.txt said by the Doctor. # The output should contain 6 lines. + +grep "^Doctor:" "$(dirname "$0")"/dialogue.txt From 2d4fb9ba2fef43ebd5fd519865e93554c7c66aa8 Mon Sep 17 00:00:00 2001 From: Luke-Manyamazi Date: Sun, 13 Jul 2025 19:36:26 +0200 Subject: [PATCH 13/37] added code to grep exercise 2 and 3 --- individual-shell-tools/grep/script-02.sh | 3 +++ individual-shell-tools/grep/script-03.sh | 2 ++ 2 files changed, 5 insertions(+) diff --git a/individual-shell-tools/grep/script-02.sh b/individual-shell-tools/grep/script-02.sh index df6f85640..ecc0c3f6f 100755 --- a/individual-shell-tools/grep/script-02.sh +++ b/individual-shell-tools/grep/script-02.sh @@ -4,3 +4,6 @@ set -euo pipefail # TODO: Write a command to output every line in dialogue.txt that contains the word Doctor (regardless of case). # The output should contain 9 lines. +grep -i "Doctor" "$(dirname "$0")"/dialogue.txt + +# diff --git a/individual-shell-tools/grep/script-03.sh b/individual-shell-tools/grep/script-03.sh index 5383fe578..1511a8976 100755 --- a/individual-shell-tools/grep/script-03.sh +++ b/individual-shell-tools/grep/script-03.sh @@ -4,3 +4,5 @@ set -euo pipefail # TODO: Write a command to output the number of lines in dialogue.txt that contain the word Doctor (regardless of case). # The output should be exactly the number 9. +grep -ic "Doctor" "$(dirname "$0")"/dialogue.txt + From 6412b49452a77b0b1a6917b588ff2a0d9ef70385 Mon Sep 17 00:00:00 2001 From: Luke-Manyamazi Date: Sun, 13 Jul 2025 19:42:18 +0200 Subject: [PATCH 14/37] added code for grep exercise 4 --- individual-shell-tools/grep/script-04.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/individual-shell-tools/grep/script-04.sh b/individual-shell-tools/grep/script-04.sh index 80ee04776..cf0c3cb29 100755 --- a/individual-shell-tools/grep/script-04.sh +++ b/individual-shell-tools/grep/script-04.sh @@ -4,3 +4,4 @@ set -euo pipefail # TODO: Write a command to output every line in dialogue.txt that does not contain the word "Hello" (regardless of case). # The output should contain 10 lines. +grep -iv "Hello" "$(dirname "$0")"/dialogue.txt From 8f6f809adc98eb1700f452745ac8cdce5211dddf Mon Sep 17 00:00:00 2001 From: Luke-Manyamazi Date: Sun, 13 Jul 2025 20:24:15 +0200 Subject: [PATCH 15/37] added code for grep exercise 5 --- individual-shell-tools/grep/script-05.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/individual-shell-tools/grep/script-05.sh b/individual-shell-tools/grep/script-05.sh index 1eb538185..8506b8ebc 100755 --- a/individual-shell-tools/grep/script-05.sh +++ b/individual-shell-tools/grep/script-05.sh @@ -4,3 +4,5 @@ set -euo pipefail # TODO: Write a command to output every line in dialogue.txt that contains the string "cure", as well as the line before that line. # The output should contain two pairs of two lines of text (with a separator between them). +grep -B 1 "cure" "$(dirname "$0")"/dialogue.txt + From 45066a894f2c4cd8b47b4c7a815a70d93cc6780c Mon Sep 17 00:00:00 2001 From: Luke-Manyamazi Date: Sun, 13 Jul 2025 21:01:26 +0200 Subject: [PATCH 16/37] added code for grep exercise 6 --- individual-shell-tools/grep/script-06.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/individual-shell-tools/grep/script-06.sh b/individual-shell-tools/grep/script-06.sh index 5670e3b6c..ffc55f9a6 100755 --- a/individual-shell-tools/grep/script-06.sh +++ b/individual-shell-tools/grep/script-06.sh @@ -4,3 +4,6 @@ set -euo pipefail # TODO: Write a command to output the name of every `.txt` file in this directory which contains a line of dialogue said by the Doctor. # The output should contain two filenames. +grep -l "Doctor:" "$(dirname "$0")"/*.txt | while IFS= read -r filepath; do + basename "$filepath" +done \ No newline at end of file From 04b3d6540a8af5f82a20f323a4acdc7ea88f6c65 Mon Sep 17 00:00:00 2001 From: Luke-Manyamazi Date: Mon, 14 Jul 2025 05:00:56 +0200 Subject: [PATCH 17/37] added code for grep exercise 7 --- individual-shell-tools/grep/script-07.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/individual-shell-tools/grep/script-07.sh b/individual-shell-tools/grep/script-07.sh index 9670ebad9..9fe1c1153 100755 --- a/individual-shell-tools/grep/script-07.sh +++ b/individual-shell-tools/grep/script-07.sh @@ -4,3 +4,6 @@ set -euo pipefail # TODO: Write a command to output, for each `.txt` file in this directory, how many lines of dialogue the Doctor has. # The output should show that dialogue.txt contains 6 lines, dialogue-2.txt contains 2, and dialogue-3.txt contains 0. +grep -c '^Doctor:' "$(dirname "$0")"/*.txt | while IFS=: read -r file count; do + echo "$(basename "$file") contains $count lines" +done From ba9aeed294755b15a614663e5cc5abfdd4936e83 Mon Sep 17 00:00:00 2001 From: Luke-Manyamazi Date: Mon, 14 Jul 2025 05:07:30 +0200 Subject: [PATCH 18/37] added code for sed exercise 1 --- individual-shell-tools/sed/script-01.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/individual-shell-tools/sed/script-01.sh b/individual-shell-tools/sed/script-01.sh index 3eba6fa4d..7d33b979f 100755 --- a/individual-shell-tools/sed/script-01.sh +++ b/individual-shell-tools/sed/script-01.sh @@ -5,3 +5,7 @@ set -euo pipefail # TODO: Write a command to output input.txt with all occurrences of the letter `i` replaced with `I`. # The output should contain 11 lines. # The first line of the output should be: "ThIs Is a sample fIle for experImentIng with sed.". +sed 's/i/I/g' "$(dirname "$0")/input.txt" | while IFS= read -r line; do + echo "$line" +done + From 7e46344fd07adc53d375fd20805744143cabbd15 Mon Sep 17 00:00:00 2001 From: Luke-Manyamazi Date: Mon, 14 Jul 2025 05:21:00 +0200 Subject: [PATCH 19/37] added code for sed exercise 2 --- individual-shell-tools/sed/script-02.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/individual-shell-tools/sed/script-02.sh b/individual-shell-tools/sed/script-02.sh index abdd64d06..067649f2f 100755 --- a/individual-shell-tools/sed/script-02.sh +++ b/individual-shell-tools/sed/script-02.sh @@ -5,3 +5,4 @@ set -euo pipefail # TODO: Write a command to output input.txt with numbers removed. # The output should contain 11 lines. # Line 6 of the output should be " Alisha". +sed 's/[0-9]//g' "$(dirname "$0")"/input.txt From 201a5c7326526dce5a82dde70de2870f718d317a Mon Sep 17 00:00:00 2001 From: Luke-Manyamazi Date: Mon, 14 Jul 2025 05:31:59 +0200 Subject: [PATCH 20/37] added code for sed exercise 3 --- individual-shell-tools/sed/script-03.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/individual-shell-tools/sed/script-03.sh b/individual-shell-tools/sed/script-03.sh index dd284a296..04acc9ae4 100755 --- a/individual-shell-tools/sed/script-03.sh +++ b/individual-shell-tools/sed/script-03.sh @@ -4,3 +4,5 @@ set -euo pipefail # TODO: Write a command to output input.txt removing any line which contains a number. # The output should contain 6 lines. +sed '/[0-9]/d' "$(dirname "$0")"/input.txt + From 228b6674b2f4f89518d5dff2e80795a318c0f664 Mon Sep 17 00:00:00 2001 From: Luke-Manyamazi Date: Mon, 14 Jul 2025 05:37:45 +0200 Subject: [PATCH 21/37] added code for sed exercise 4 --- individual-shell-tools/sed/script-04.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/individual-shell-tools/sed/script-04.sh b/individual-shell-tools/sed/script-04.sh index 0052ac6c4..1dc96b545 100755 --- a/individual-shell-tools/sed/script-04.sh +++ b/individual-shell-tools/sed/script-04.sh @@ -4,3 +4,4 @@ set -euo pipefail # TODO: Write a command to output input.txt replacing every occurrence of the string "We'll" with "We will". # The output should contain 11 lines. +sed 's/We'\''ll/We will/g' "$(dirname "$0")"/input.txt From a090b37a0513a47d98a9e3a9a93ef08094e7587a Mon Sep 17 00:00:00 2001 From: Luke-Manyamazi Date: Mon, 14 Jul 2025 05:51:22 +0200 Subject: [PATCH 22/37] added code for sed exercise 5 --- individual-shell-tools/sed/script-05.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/individual-shell-tools/sed/script-05.sh b/individual-shell-tools/sed/script-05.sh index 2dcc91a0c..fbb815ec9 100755 --- a/individual-shell-tools/sed/script-05.sh +++ b/individual-shell-tools/sed/script-05.sh @@ -6,3 +6,5 @@ set -euo pipefail # If a line starts with a number and a space, make the line instead end with a space and the number. # So line 6 which currently reads "37 Alisha" should instead read "Alisha 37". # The output should contain 11 lines. +sed -E 's/^([0-9]+) (.*)/\2 \1/' "$(dirname "$0")"/input.txt + From fe8fac4a6870ce5127f7fa485566e050a52458b4 Mon Sep 17 00:00:00 2001 From: Luke-Manyamazi Date: Mon, 14 Jul 2025 10:01:03 +0200 Subject: [PATCH 23/37] added code for sed exercise 6 --- individual-shell-tools/sed/script-06.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/individual-shell-tools/sed/script-06.sh b/individual-shell-tools/sed/script-06.sh index 0b9390170..ba1a62608 100755 --- a/individual-shell-tools/sed/script-06.sh +++ b/individual-shell-tools/sed/script-06.sh @@ -8,3 +8,6 @@ set -euo pipefail # The output should contain 11 lines. # Line 3 should be "It contains many lines, and there are some things you may want to do with each of them.". # Line 11 should be "We also should remember, when we go shopping, to get 4 items: oranges, cheese, bread, olives.". +sed -E 's/,([^ ])/,\ \1/g' "$(dirname "$0")"/input.txt + + From 1fe9d18115423207822668e1652cc74e8b53976a Mon Sep 17 00:00:00 2001 From: Luke-Manyamazi Date: Tue, 15 Jul 2025 17:40:33 +0200 Subject: [PATCH 24/37] added coded for awk exercise 1 --- individual-shell-tools/awk/script-01.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/individual-shell-tools/awk/script-01.sh b/individual-shell-tools/awk/script-01.sh index 8db4390af..c4f46dcff 100755 --- a/individual-shell-tools/awk/script-01.sh +++ b/individual-shell-tools/awk/script-01.sh @@ -4,3 +4,4 @@ set -euo pipefail # TODO: Write a command to output just the names of each player in `scores-table.txt`. # Your output should contain 6 lines, each with just one word on it. +awk '{print $1}' "$(dirname "$0")"/scores-table.txt From fdab745e074319ca7fafb24a1f522834248e93a6 Mon Sep 17 00:00:00 2001 From: Luke-Manyamazi Date: Tue, 15 Jul 2025 17:42:44 +0200 Subject: [PATCH 25/37] added code for awk exercise 2 --- individual-shell-tools/awk/script-02.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/individual-shell-tools/awk/script-02.sh b/individual-shell-tools/awk/script-02.sh index 5956be9bd..237d71204 100755 --- a/individual-shell-tools/awk/script-02.sh +++ b/individual-shell-tools/awk/script-02.sh @@ -4,3 +4,4 @@ set -euo pipefail # 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, separated by a space. +awk '{print $1, $2}' "$(dirname "$0")"/scores-table.txt From 8ee5f3c4292eeb2e2b34bae9e2e1101887049c9c Mon Sep 17 00:00:00 2001 From: Luke-Manyamazi Date: Tue, 15 Jul 2025 17:44:40 +0200 Subject: [PATCH 26/37] added code for awk exercise 3 --- individual-shell-tools/awk/script-03.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/individual-shell-tools/awk/script-03.sh b/individual-shell-tools/awk/script-03.sh index af7c6e8b9..b327c8201 100755 --- a/individual-shell-tools/awk/script-03.sh +++ b/individual-shell-tools/awk/script-03.sh @@ -5,3 +5,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". +awk '{print $1, $3}' "$(dirname "$0")"/scores-table.txt From bfd885a173524aa238c4701bb5a04db6021abc83 Mon Sep 17 00:00:00 2001 From: Luke-Manyamazi Date: Tue, 15 Jul 2025 17:46:30 +0200 Subject: [PATCH 27/37] added code for awk exercise 4 --- individual-shell-tools/awk/script-04.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/individual-shell-tools/awk/script-04.sh b/individual-shell-tools/awk/script-04.sh index bf15703c7..7c1065624 100755 --- a/individual-shell-tools/awk/script-04.sh +++ b/individual-shell-tools/awk/script-04.sh @@ -5,3 +5,4 @@ set -euo pipefail # TODO: Write a command to output just the names of each player in London along with the score from their last attempt. # Your output should contain 3 lines, each with one word and one number on it. # The first line should be "Ahmed 4". +awk '/London/ {print $1, $NF}' "$(dirname "$0")"/scores-table.txt From 865a9519ace82ebb33fe98b02328c139a1cd0587 Mon Sep 17 00:00:00 2001 From: Luke-Manyamazi Date: Tue, 15 Jul 2025 18:33:43 +0200 Subject: [PATCH 28/37] added code awk exercise 5 --- individual-shell-tools/awk/script-05.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/individual-shell-tools/awk/script-05.sh b/individual-shell-tools/awk/script-05.sh index d1680cb02..5a97c63ac 100755 --- a/individual-shell-tools/awk/script-05.sh +++ b/individual-shell-tools/awk/script-05.sh @@ -5,3 +5,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". +awk '{ name = $1; plays = NF - 2; print name, plays}' "$(dirname "$0")"/scores-table.txt \ No newline at end of file From b3014a01c1c0a8e128913649c22d8369978ec714 Mon Sep 17 00:00:00 2001 From: Luke-Manyamazi Date: Tue, 15 Jul 2025 18:36:15 +0200 Subject: [PATCH 29/37] added code for awk exercise 6 --- individual-shell-tools/awk/script-06-stretch.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/individual-shell-tools/awk/script-06-stretch.sh b/individual-shell-tools/awk/script-06-stretch.sh index 0201e6378..0ba296349 100755 --- a/individual-shell-tools/awk/script-06-stretch.sh +++ b/individual-shell-tools/awk/script-06-stretch.sh @@ -6,3 +6,4 @@ set -euo pipefail # TODO: Write a command to output the total of adding together all players' first scores. # Your output should be exactly the number 54. +awk '{ total += $3 } END { print total }' "$(dirname "$0")"/scores-table.txt From 1ba1cb09e0c2cdd10ade72f1c9676c51931a7d49 Mon Sep 17 00:00:00 2001 From: Luke-Manyamazi Date: Tue, 15 Jul 2025 18:39:00 +0200 Subject: [PATCH 30/37] added code for awk exercise 7 --- individual-shell-tools/awk/script-07-stretch.sh | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/individual-shell-tools/awk/script-07-stretch.sh b/individual-shell-tools/awk/script-07-stretch.sh index 3f7155880..b5bf1eec2 100755 --- a/individual-shell-tools/awk/script-07-stretch.sh +++ b/individual-shell-tools/awk/script-07-stretch.sh @@ -7,3 +7,8 @@ set -euo pipefail # TODO: Write a command to output just the names of each player along with the total of adding all of that player's scores. # Your output should contain 6 lines, each with one word and one number on it. # The first line should be "Ahmed 15". The second line should be "Basia 37" +awk '{ name = $1; total = 0; + for (i = 3; i <= NF; i++) + total += $i; + print name, total + }' "$(dirname "$0")"/scores-table.txt From 3d73eba2232bbf68ec529cc2c08f860aa740e15c Mon Sep 17 00:00:00 2001 From: Luke Manyamazi Date: Tue, 14 Oct 2025 21:52:51 +0200 Subject: [PATCH 31/37] Update script-06.sh --- individual-shell-tools/grep/script-06.sh | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/individual-shell-tools/grep/script-06.sh b/individual-shell-tools/grep/script-06.sh index ffc55f9a6..107c53469 100755 --- a/individual-shell-tools/grep/script-06.sh +++ b/individual-shell-tools/grep/script-06.sh @@ -4,6 +4,4 @@ set -euo pipefail # TODO: Write a command to output the name of every `.txt` file in this directory which contains a line of dialogue said by the Doctor. # The output should contain two filenames. -grep -l "Doctor:" "$(dirname "$0")"/*.txt | while IFS= read -r filepath; do - basename "$filepath" -done \ No newline at end of file +grep -l "Doctor:" "$(dirname "$0")"/*.txt From 899d5401f9df148d0a84d2b383541cd42015e709 Mon Sep 17 00:00:00 2001 From: Luke Manyamazi Date: Tue, 14 Oct 2025 21:53:33 +0200 Subject: [PATCH 32/37] Update script-07.sh --- individual-shell-tools/grep/script-07.sh | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/individual-shell-tools/grep/script-07.sh b/individual-shell-tools/grep/script-07.sh index 9fe1c1153..9ad480b1a 100755 --- a/individual-shell-tools/grep/script-07.sh +++ b/individual-shell-tools/grep/script-07.sh @@ -4,6 +4,4 @@ set -euo pipefail # TODO: Write a command to output, for each `.txt` file in this directory, how many lines of dialogue the Doctor has. # The output should show that dialogue.txt contains 6 lines, dialogue-2.txt contains 2, and dialogue-3.txt contains 0. -grep -c '^Doctor:' "$(dirname "$0")"/*.txt | while IFS=: read -r file count; do - echo "$(basename "$file") contains $count lines" -done +grep -c '^Doctor:' "$(dirname "$0")"/*.txt From d761aa040f0120910a4cc2829ec794f0d38f2d1d Mon Sep 17 00:00:00 2001 From: Luke Manyamazi Date: Tue, 14 Oct 2025 21:54:28 +0200 Subject: [PATCH 33/37] Update script-02.sh --- individual-shell-tools/ls/script-02.sh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/individual-shell-tools/ls/script-02.sh b/individual-shell-tools/ls/script-02.sh index e9c349be2..f1da17b81 100755 --- a/individual-shell-tools/ls/script-02.sh +++ b/individual-shell-tools/ls/script-02.sh @@ -4,5 +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. -cd /home/luke/CYF/SDC/Module-Tools/individual-shell-tools/ls/child-directory -ls \ No newline at end of file +ls "$(dirname "$0")"/child-directory From ad5f456f0f07cb275dd670123f6696d6510690d2 Mon Sep 17 00:00:00 2001 From: Luke Manyamazi Date: Tue, 14 Oct 2025 21:55:10 +0200 Subject: [PATCH 34/37] Update script-01.sh --- individual-shell-tools/sed/script-01.sh | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/individual-shell-tools/sed/script-01.sh b/individual-shell-tools/sed/script-01.sh index 7d33b979f..b8ddb3357 100755 --- a/individual-shell-tools/sed/script-01.sh +++ b/individual-shell-tools/sed/script-01.sh @@ -5,7 +5,4 @@ set -euo pipefail # TODO: Write a command to output input.txt with all occurrences of the letter `i` replaced with `I`. # The output should contain 11 lines. # The first line of the output should be: "ThIs Is a sample fIle for experImentIng with sed.". -sed 's/i/I/g' "$(dirname "$0")/input.txt" | while IFS= read -r line; do - echo "$line" -done - +sed 's/i/I/g' "$(dirname "$0")/input.txt" From bbebb02fe59ae5f8079ac7f3837d9483346030ca Mon Sep 17 00:00:00 2001 From: Luke Manyamazi Date: Tue, 14 Oct 2025 21:55:50 +0200 Subject: [PATCH 35/37] Update script-04.sh --- individual-shell-tools/sed/script-04.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/individual-shell-tools/sed/script-04.sh b/individual-shell-tools/sed/script-04.sh index 1dc96b545..1eafc7c26 100755 --- a/individual-shell-tools/sed/script-04.sh +++ b/individual-shell-tools/sed/script-04.sh @@ -4,4 +4,4 @@ set -euo pipefail # TODO: Write a command to output input.txt replacing every occurrence of the string "We'll" with "We will". # The output should contain 11 lines. -sed 's/We'\''ll/We will/g' "$(dirname "$0")"/input.txt +sed "s/We'll/We will/g" "$(dirname "$0")/input.txt" From efcb635aee1be3be50d0b67696b8db3e9c40ed63 Mon Sep 17 00:00:00 2001 From: Luke Manyamazi Date: Tue, 14 Oct 2025 21:56:23 +0200 Subject: [PATCH 36/37] Update script-01.sh --- individual-shell-tools/wc/script-01.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/individual-shell-tools/wc/script-01.sh b/individual-shell-tools/wc/script-01.sh index 8695f8fb4..3d464f8d3 100755 --- a/individual-shell-tools/wc/script-01.sh +++ b/individual-shell-tools/wc/script-01.sh @@ -4,4 +4,4 @@ set -euo pipefail # TODO: Write a command to output the number of words in the file helper-files/helper-3.txt. # The output should include the number 19. The output should not include the number 92. -wc -w "$(dirname "$0")"/../helper-files/helper-3.txt | awk '{print $1}' +wc -w < "$(dirname "$0")"/../helper-files/helper-3.txt From 4ffbb6770b5f42a917dfc5707a7008e6b518308a Mon Sep 17 00:00:00 2001 From: Luke Manyamazi Date: Tue, 14 Oct 2025 21:57:05 +0200 Subject: [PATCH 37/37] Update script-03.sh --- individual-shell-tools/wc/script-03.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/individual-shell-tools/wc/script-03.sh b/individual-shell-tools/wc/script-03.sh index fc1458eb3..a83efda6d 100755 --- a/individual-shell-tools/wc/script-03.sh +++ b/individual-shell-tools/wc/script-03.sh @@ -8,4 +8,4 @@ set -euo pipefail # 1 7 39 ../helper-files/helper-2.txt # 3 19 92 ../helper-files/helper-3.txt # 5 30 151 total -wc -lwm "$(dirname "$0")"/../helper-files/*.txt +wc "$(dirname "$0")"/../helper-files/*.txt