From 917b21fe49a3beb7c73864e939880f8e41ab4e77 Mon Sep 17 00:00:00 2001 From: Jamal Laqdiem Date: Thu, 5 Mar 2026 12:14:44 +0000 Subject: [PATCH 01/17] Added command shell to display the ls directory content. Added -1 that allow on file by line. --- individual-shell-tools/ls/script-01.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/individual-shell-tools/ls/script-01.sh b/individual-shell-tools/ls/script-01.sh index 241b62f5e..071d4ba67 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 -1 \ No newline at end of file From 330e8bbc5736062280bed9868673a8ef97d543dc Mon Sep 17 00:00:00 2001 From: Jamal Laqdiem Date: Fri, 6 Mar 2026 10:28:58 +0000 Subject: [PATCH 02/17] Solve exercise, the 2, the child-directory. --- individual-shell-tools/ls/script-02.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/individual-shell-tools/ls/script-02.sh b/individual-shell-tools/ls/script-02.sh index d0a5a10f4..758b7b1e1 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 -1 ./child-directory \ No newline at end of file From 28edf23f403271862e7627f58bd1387c0c1ae7bc Mon Sep 17 00:00:00 2001 From: Jamal Laqdiem Date: Fri, 6 Mar 2026 10:36:05 +0000 Subject: [PATCH 03/17] Resolve exercise 3, display all folders and files. --- individual-shell-tools/ls/script-03.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/individual-shell-tools/ls/script-03.sh b/individual-shell-tools/ls/script-03.sh index 781216d21..89898a5b2 100755 --- a/individual-shell-tools/ls/script-03.sh +++ b/individual-shell-tools/ls/script-03.sh @@ -5,3 +5,4 @@ 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. +ls -R -1 \ No newline at end of file From 0134a1dba98ecc00660f802664f6333f16459bc6 Mon Sep 17 00:00:00 2001 From: Jamal Laqdiem Date: Fri, 6 Mar 2026 10:43:53 +0000 Subject: [PATCH 04/17] Sort and display the files the newest first, then opposite. --- individual-shell-tools/ls/script-04.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/individual-shell-tools/ls/script-04.sh b/individual-shell-tools/ls/script-04.sh index 72f3817b3..0c3d42d41 100755 --- a/individual-shell-tools/ls/script-04.sh +++ b/individual-shell-tools/ls/script-04.sh @@ -15,9 +15,11 @@ 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. - +ls -1t -1 ./child-directory 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 -1tr ./child-directory \ No newline at end of file From 9d39682ffc213ac5b903bd3acdb1527ab61b036f Mon Sep 17 00:00:00 2001 From: Jamal Laqdiem Date: Fri, 6 Mar 2026 10:51:18 +0000 Subject: [PATCH 05/17] Use cat to display files content. --- 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..2f0ac6d4e 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 helper-files/helper-1.txt \ No newline at end of file From 10709e90bcaa13af48fc519f8a0d2826d21d4c9b Mon Sep 17 00:00:00 2001 From: Jamal Laqdiem Date: Fri, 6 Mar 2026 10:58:56 +0000 Subject: [PATCH 06/17] DIsplay multiple files content. --- individual-shell-tools/cat/script-02.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/individual-shell-tools/cat/script-02.sh b/individual-shell-tools/cat/script-02.sh index 01bbd5eab..a85bd6f7b 100755 --- a/individual-shell-tools/cat/script-02.sh +++ b/individual-shell-tools/cat/script-02.sh @@ -11,3 +11,4 @@ set -euo pipefail # It looked delicious. # I was tempted to take a bite of it. # But this seemed like a bad idea... +cat helper-files/helper-1.txt helper-files/helper-2.txt helper-files/helper-3.txt \ No newline at end of file From 5e92510ad3d4c774f6f3d295412613da01fc6b9c Mon Sep 17 00:00:00 2001 From: Jamal Laqdiem Date: Fri, 6 Mar 2026 11:02:25 +0000 Subject: [PATCH 07/17] Display line numbers. --- individual-shell-tools/cat/script-03.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/individual-shell-tools/cat/script-03.sh b/individual-shell-tools/cat/script-03.sh index 37573b0c1..331a8eb2a 100755 --- a/individual-shell-tools/cat/script-03.sh +++ b/individual-shell-tools/cat/script-03.sh @@ -9,3 +9,5 @@ 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 helper-files/helper-3.txt From f6345e2e2316e74cfdee8da18af1fd010941bd99 Mon Sep 17 00:00:00 2001 From: Jamal Laqdiem Date: Fri, 6 Mar 2026 11:07:12 +0000 Subject: [PATCH 08/17] Display the the whole content files, using line numbers. --- 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..51f8c23ad 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 helper-files/* \ No newline at end of file From 0fd2c18dd9afeddf0147c6ecff9a6941d2638202 Mon Sep 17 00:00:00 2001 From: Jamal Laqdiem Date: Fri, 6 Mar 2026 11:14:32 +0000 Subject: [PATCH 09/17] Using cw command to count words in a file. --- 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..17d35ef66 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 helper-files/helper-3.txt \ No newline at end of file From 4a5120e664f802fc4c19508adca1c91abfc11750 Mon Sep 17 00:00:00 2001 From: Jamal Laqdiem Date: Fri, 6 Mar 2026 11:16:24 +0000 Subject: [PATCH 10/17] Display lines. --- 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..cdd372b18 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 helper-files/helper-3.txt \ No newline at end of file From ce1ffac3a0084ace1bc2b69ea31e9f967c1020b4 Mon Sep 17 00:00:00 2001 From: Jamal Laqdiem Date: Fri, 6 Mar 2026 11:21:21 +0000 Subject: [PATCH 11/17] Display the whole content, lines, words, characters. --- individual-shell-tools/wc/script-03.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/individual-shell-tools/wc/script-03.sh b/individual-shell-tools/wc/script-03.sh index 6b2e9d3d1..5fa01db1e 100755 --- a/individual-shell-tools/wc/script-03.sh +++ b/individual-shell-tools/wc/script-03.sh @@ -8,3 +8,5 @@ set -euo pipefail # 1 7 39 ../helper-files/helper-2.txt # 3 19 92 ../helper-files/helper-3.txt # 5 30 151 total + +wc helper-files/* \ No newline at end of file From bbbd29e946927b23d363cc6441f802304417e7bb Mon Sep 17 00:00:00 2001 From: Jamal Laqdiem Date: Fri, 6 Mar 2026 11:33:37 +0000 Subject: [PATCH 12/17] Display every line dialogue by the doctor, using Caret to check the start of the line. --- individual-shell-tools/grep/script-01.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/individual-shell-tools/grep/script-01.sh b/individual-shell-tools/grep/script-01.sh index fb05f42f2..def41f899 100755 --- a/individual-shell-tools/grep/script-01.sh +++ b/individual-shell-tools/grep/script-01.sh @@ -4,3 +4,4 @@ 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:' ./grep/dialogue.txt \ No newline at end of file From 4d7e977d93e0b41f812d98b0853ae203de191126 Mon Sep 17 00:00:00 2001 From: Jamal Laqdiem Date: Fri, 6 Mar 2026 11:38:04 +0000 Subject: [PATCH 13/17] Displaying words regardless of case. --- individual-shell-tools/grep/script-02.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/individual-shell-tools/grep/script-02.sh b/individual-shell-tools/grep/script-02.sh index df6f85640..2e367aea3 100755 --- a/individual-shell-tools/grep/script-02.sh +++ b/individual-shell-tools/grep/script-02.sh @@ -4,3 +4,4 @@ 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' grep/dialogue.txt \ No newline at end of file From c272f15709e2ff10130193d183fea1d6ffecbc84 Mon Sep 17 00:00:00 2001 From: Jamal Laqdiem Date: Fri, 6 Mar 2026 13:20:38 +0000 Subject: [PATCH 14/17] COmpleting exercises that walk through grep command. --- individual-shell-tools/grep/script-01.sh | 2 +- individual-shell-tools/grep/script-02.sh | 2 +- individual-shell-tools/grep/script-03.sh | 1 + individual-shell-tools/grep/script-04.sh | 1 + individual-shell-tools/grep/script-05.sh | 1 + individual-shell-tools/grep/script-06.sh | 1 + individual-shell-tools/grep/script-07.sh | 1 + 7 files changed, 7 insertions(+), 2 deletions(-) diff --git a/individual-shell-tools/grep/script-01.sh b/individual-shell-tools/grep/script-01.sh index def41f899..6da55c85a 100755 --- a/individual-shell-tools/grep/script-01.sh +++ b/individual-shell-tools/grep/script-01.sh @@ -4,4 +4,4 @@ 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:' ./grep/dialogue.txt \ No newline at end of file +grep '^Doctor:' dialogue.txt \ No newline at end of file diff --git a/individual-shell-tools/grep/script-02.sh b/individual-shell-tools/grep/script-02.sh index 2e367aea3..5e2a31132 100755 --- a/individual-shell-tools/grep/script-02.sh +++ b/individual-shell-tools/grep/script-02.sh @@ -4,4 +4,4 @@ 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' grep/dialogue.txt \ No newline at end of file +grep -i 'Doctor' dialogue.txt \ No newline at end of file diff --git a/individual-shell-tools/grep/script-03.sh b/individual-shell-tools/grep/script-03.sh index 5383fe578..5024cb62c 100755 --- a/individual-shell-tools/grep/script-03.sh +++ b/individual-shell-tools/grep/script-03.sh @@ -4,3 +4,4 @@ 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 -i "Doctor" dialogue.txt | wc -l \ No newline at end of file diff --git a/individual-shell-tools/grep/script-04.sh b/individual-shell-tools/grep/script-04.sh index 80ee04776..1056907df 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 -vi "hello" dialogue.txt | wc -l \ No newline at end of file diff --git a/individual-shell-tools/grep/script-05.sh b/individual-shell-tools/grep/script-05.sh index 1eb538185..a7e28a473 100755 --- a/individual-shell-tools/grep/script-05.sh +++ b/individual-shell-tools/grep/script-05.sh @@ -4,3 +4,4 @@ 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" dialogue.txt \ No newline at end of file diff --git a/individual-shell-tools/grep/script-06.sh b/individual-shell-tools/grep/script-06.sh index 5670e3b6c..0982dceff 100755 --- a/individual-shell-tools/grep/script-06.sh +++ b/individual-shell-tools/grep/script-06.sh @@ -4,3 +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' *.txt \ No newline at end of file diff --git a/individual-shell-tools/grep/script-07.sh b/individual-shell-tools/grep/script-07.sh index 9670ebad9..960209981 100755 --- a/individual-shell-tools/grep/script-07.sh +++ b/individual-shell-tools/grep/script-07.sh @@ -4,3 +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:' *.txt \ No newline at end of file From 13afd0907127e61dc02d8b9ee0a49cf86aed5507 Mon Sep 17 00:00:00 2001 From: Jamal Laqdiem Date: Sun, 8 Mar 2026 09:35:39 +0000 Subject: [PATCH 15/17] Completing exercises using sed command. --- individual-shell-tools/sed/script-01.sh | 1 + individual-shell-tools/sed/script-02.sh | 1 + individual-shell-tools/sed/script-03.sh | 1 + individual-shell-tools/sed/script-04.sh | 2 ++ individual-shell-tools/sed/script-05.sh | 1 + individual-shell-tools/sed/script-06.sh | 1 + 6 files changed, 7 insertions(+) diff --git a/individual-shell-tools/sed/script-01.sh b/individual-shell-tools/sed/script-01.sh index 3eba6fa4d..57faad5ba 100755 --- a/individual-shell-tools/sed/script-01.sh +++ b/individual-shell-tools/sed/script-01.sh @@ -5,3 +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' input.txt \ No newline at end of file diff --git a/individual-shell-tools/sed/script-02.sh b/individual-shell-tools/sed/script-02.sh index abdd64d06..d3f70b8ce 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' input.txt \ No newline at end of file diff --git a/individual-shell-tools/sed/script-03.sh b/individual-shell-tools/sed/script-03.sh index dd284a296..07cb6a27c 100755 --- a/individual-shell-tools/sed/script-03.sh +++ b/individual-shell-tools/sed/script-03.sh @@ -4,3 +4,4 @@ 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' input.txt \ No newline at end of file diff --git a/individual-shell-tools/sed/script-04.sh b/individual-shell-tools/sed/script-04.sh index 0052ac6c4..ae19f6735 100755 --- a/individual-shell-tools/sed/script-04.sh +++ b/individual-shell-tools/sed/script-04.sh @@ -4,3 +4,5 @@ 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" input.txt \ No newline at end of file diff --git a/individual-shell-tools/sed/script-05.sh b/individual-shell-tools/sed/script-05.sh index 2dcc91a0c..6f1b7cba0 100755 --- a/individual-shell-tools/sed/script-05.sh +++ b/individual-shell-tools/sed/script-05.sh @@ -6,3 +6,4 @@ 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/' input.txt \ No newline at end of file diff --git a/individual-shell-tools/sed/script-06.sh b/individual-shell-tools/sed/script-06.sh index 0b9390170..83a2adf02 100755 --- a/individual-shell-tools/sed/script-06.sh +++ b/individual-shell-tools/sed/script-06.sh @@ -8,3 +8,4 @@ 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' input.txt \ No newline at end of file From dd32ac084bd8953935bae312115c07d7ce95f29a Mon Sep 17 00:00:00 2001 From: Jamal Laqdiem Date: Sun, 8 Mar 2026 10:02:24 +0000 Subject: [PATCH 16/17] Complete exercises using awk command line. --- individual-shell-tools/awk/script-01.sh | 1 + individual-shell-tools/awk/script-02.sh | 1 + individual-shell-tools/awk/script-03.sh | 1 + individual-shell-tools/awk/script-04.sh | 1 + individual-shell-tools/awk/script-05.sh | 1 + individual-shell-tools/awk/script-06-stretch.sh | 1 + individual-shell-tools/awk/script-07-stretch.sh | 1 + 7 files changed, 7 insertions(+) diff --git a/individual-shell-tools/awk/script-01.sh b/individual-shell-tools/awk/script-01.sh index 8db4390af..824e4c58b 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}' scores-table.txt \ No newline at end of file diff --git a/individual-shell-tools/awk/script-02.sh b/individual-shell-tools/awk/script-02.sh index 5956be9bd..5559ca2fb 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}' scores-table.txt \ No newline at end of file diff --git a/individual-shell-tools/awk/script-03.sh b/individual-shell-tools/awk/script-03.sh index af7c6e8b9..87c511f6e 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}' scores-table.txt \ No newline at end of file diff --git a/individual-shell-tools/awk/script-04.sh b/individual-shell-tools/awk/script-04.sh index bf15703c7..23d8eaf7b 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 '$2 == "London" {print $1, $NF}' scores-table.txt \ No newline at end of file diff --git a/individual-shell-tools/awk/script-05.sh b/individual-shell-tools/awk/script-05.sh index d1680cb02..d4826569b 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 '{print $1, NF - 2}' scores-table.txt \ No newline at end of file diff --git a/individual-shell-tools/awk/script-06-stretch.sh b/individual-shell-tools/awk/script-06-stretch.sh index 0201e6378..6a268bbeb 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 '{sum += $3} END {print sum}' scores-table.txt \ No newline at end of file diff --git a/individual-shell-tools/awk/script-07-stretch.sh b/individual-shell-tools/awk/script-07-stretch.sh index 3f7155880..8da1bedf7 100755 --- a/individual-shell-tools/awk/script-07-stretch.sh +++ b/individual-shell-tools/awk/script-07-stretch.sh @@ -7,3 +7,4 @@ 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 '{ total = 0; for (i = 2; i <= NF; i++) total += $i; print $1, total }' scores-table.txt \ No newline at end of file From cd446fded92a17775643e6a0b65f9742622f0a61 Mon Sep 17 00:00:00 2001 From: Jamal Laqdiem Date: Mon, 23 Mar 2026 11:39:06 +0000 Subject: [PATCH 17/17] fix: addressed the reviewer questions. --- individual-shell-tools/awk/script-01.sh | 2 +- individual-shell-tools/awk/script-02.sh | 2 +- individual-shell-tools/awk/script-03.sh | 2 +- individual-shell-tools/awk/script-04.sh | 2 +- individual-shell-tools/awk/script-05.sh | 2 +- individual-shell-tools/awk/script-06-stretch.sh | 2 +- individual-shell-tools/awk/script-07-stretch.sh | 2 +- individual-shell-tools/cat/script-01.sh | 2 +- individual-shell-tools/cat/script-02.sh | 2 +- individual-shell-tools/cat/script-04-stretch.sh | 2 +- individual-shell-tools/grep/script-01.sh | 2 +- individual-shell-tools/grep/script-02.sh | 2 +- individual-shell-tools/grep/script-03.sh | 2 +- individual-shell-tools/grep/script-04.sh | 2 +- individual-shell-tools/grep/script-05.sh | 2 +- individual-shell-tools/grep/script-06.sh | 2 +- individual-shell-tools/grep/script-07.sh | 2 +- individual-shell-tools/ls/script-01.sh | 2 +- individual-shell-tools/ls/script-02.sh | 2 +- individual-shell-tools/ls/script-03.sh | 2 +- individual-shell-tools/ls/script-04.sh | 4 ++-- individual-shell-tools/sed/script-01.sh | 2 +- individual-shell-tools/sed/script-02.sh | 2 +- individual-shell-tools/sed/script-03.sh | 2 +- individual-shell-tools/sed/script-04.sh | 2 +- individual-shell-tools/sed/script-05.sh | 2 +- individual-shell-tools/sed/script-06.sh | 2 +- individual-shell-tools/wc/script-01.sh | 2 +- individual-shell-tools/wc/script-02.sh | 2 +- individual-shell-tools/wc/script-03.sh | 2 +- 30 files changed, 31 insertions(+), 31 deletions(-) diff --git a/individual-shell-tools/awk/script-01.sh b/individual-shell-tools/awk/script-01.sh index 824e4c58b..90e2397d6 100755 --- a/individual-shell-tools/awk/script-01.sh +++ b/individual-shell-tools/awk/script-01.sh @@ -4,4 +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}' scores-table.txt \ No newline at end of file +awk '{print $1}' scores-table.txt diff --git a/individual-shell-tools/awk/script-02.sh b/individual-shell-tools/awk/script-02.sh index 5559ca2fb..da34660ab 100755 --- a/individual-shell-tools/awk/script-02.sh +++ b/individual-shell-tools/awk/script-02.sh @@ -4,4 +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}' scores-table.txt \ No newline at end of file +awk '{print $1, $2}' scores-table.txt diff --git a/individual-shell-tools/awk/script-03.sh b/individual-shell-tools/awk/script-03.sh index 87c511f6e..55c51c48e 100755 --- a/individual-shell-tools/awk/script-03.sh +++ b/individual-shell-tools/awk/script-03.sh @@ -5,4 +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}' scores-table.txt \ No newline at end of file +awk '{print $1, $3}' scores-table.txt diff --git a/individual-shell-tools/awk/script-04.sh b/individual-shell-tools/awk/script-04.sh index 23d8eaf7b..e28e54458 100755 --- a/individual-shell-tools/awk/script-04.sh +++ b/individual-shell-tools/awk/script-04.sh @@ -5,4 +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 '$2 == "London" {print $1, $NF}' scores-table.txt \ No newline at end of file +awk '$2 == "London" {print $1, $NF}' scores-table.txt diff --git a/individual-shell-tools/awk/script-05.sh b/individual-shell-tools/awk/script-05.sh index d4826569b..13bd9b3d5 100755 --- a/individual-shell-tools/awk/script-05.sh +++ b/individual-shell-tools/awk/script-05.sh @@ -5,4 +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 '{print $1, NF - 2}' scores-table.txt \ No newline at end of file +awk '{print $1, NF - 2}' scores-table.txt diff --git a/individual-shell-tools/awk/script-06-stretch.sh b/individual-shell-tools/awk/script-06-stretch.sh index 6a268bbeb..841f60196 100755 --- a/individual-shell-tools/awk/script-06-stretch.sh +++ b/individual-shell-tools/awk/script-06-stretch.sh @@ -6,4 +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 '{sum += $3} END {print sum}' scores-table.txt \ No newline at end of file +awk '{sum += $3} END {print sum}' scores-table.txt diff --git a/individual-shell-tools/awk/script-07-stretch.sh b/individual-shell-tools/awk/script-07-stretch.sh index 8da1bedf7..3ce924889 100755 --- a/individual-shell-tools/awk/script-07-stretch.sh +++ b/individual-shell-tools/awk/script-07-stretch.sh @@ -7,4 +7,4 @@ 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 '{ total = 0; for (i = 2; i <= NF; i++) total += $i; print $1, total }' scores-table.txt \ No newline at end of file +awk '{ total = 0; for (i = 3; i <= NF; i++) total += $i; print $1, total }' scores-table.txt diff --git a/individual-shell-tools/cat/script-01.sh b/individual-shell-tools/cat/script-01.sh index 2f0ac6d4e..edcc54fb4 100755 --- a/individual-shell-tools/cat/script-01.sh +++ b/individual-shell-tools/cat/script-01.sh @@ -4,4 +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 helper-files/helper-1.txt \ No newline at end of file +cat ../helper-files/helper-1.txt diff --git a/individual-shell-tools/cat/script-02.sh b/individual-shell-tools/cat/script-02.sh index a85bd6f7b..e96fb4c1b 100755 --- a/individual-shell-tools/cat/script-02.sh +++ b/individual-shell-tools/cat/script-02.sh @@ -11,4 +11,4 @@ set -euo pipefail # It looked delicious. # I was tempted to take a bite of it. # But this seemed like a bad idea... -cat helper-files/helper-1.txt helper-files/helper-2.txt helper-files/helper-3.txt \ No newline at end of file +cat helper-files/helper-1.txt helper-files/helper-2.txt helper-files/helper-3.txt diff --git a/individual-shell-tools/cat/script-04-stretch.sh b/individual-shell-tools/cat/script-04-stretch.sh index 51f8c23ad..8c22f8df9 100755 --- a/individual-shell-tools/cat/script-04-stretch.sh +++ b/individual-shell-tools/cat/script-04-stretch.sh @@ -13,4 +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 helper-files/* \ No newline at end of file +cat -n helper-files/* diff --git a/individual-shell-tools/grep/script-01.sh b/individual-shell-tools/grep/script-01.sh index 6da55c85a..490a2b86e 100755 --- a/individual-shell-tools/grep/script-01.sh +++ b/individual-shell-tools/grep/script-01.sh @@ -4,4 +4,4 @@ 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:' dialogue.txt \ No newline at end of file +grep '^Doctor:' dialogue.txt diff --git a/individual-shell-tools/grep/script-02.sh b/individual-shell-tools/grep/script-02.sh index 5e2a31132..0b545b410 100755 --- a/individual-shell-tools/grep/script-02.sh +++ b/individual-shell-tools/grep/script-02.sh @@ -4,4 +4,4 @@ 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' dialogue.txt \ No newline at end of file +grep -i 'Doctor' dialogue.txt diff --git a/individual-shell-tools/grep/script-03.sh b/individual-shell-tools/grep/script-03.sh index 5024cb62c..541d05a53 100755 --- a/individual-shell-tools/grep/script-03.sh +++ b/individual-shell-tools/grep/script-03.sh @@ -4,4 +4,4 @@ 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 -i "Doctor" dialogue.txt | wc -l \ No newline at end of file +grep -i "Doctor" dialogue.txt | wc -l diff --git a/individual-shell-tools/grep/script-04.sh b/individual-shell-tools/grep/script-04.sh index 1056907df..e9e8885de 100755 --- a/individual-shell-tools/grep/script-04.sh +++ b/individual-shell-tools/grep/script-04.sh @@ -4,4 +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 -vi "hello" dialogue.txt | wc -l \ No newline at end of file +grep -vi "hello" dialogue.txt diff --git a/individual-shell-tools/grep/script-05.sh b/individual-shell-tools/grep/script-05.sh index a7e28a473..d4115cec7 100755 --- a/individual-shell-tools/grep/script-05.sh +++ b/individual-shell-tools/grep/script-05.sh @@ -4,4 +4,4 @@ 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" dialogue.txt \ No newline at end of file +grep -B 1 "cure" dialogue.txt diff --git a/individual-shell-tools/grep/script-06.sh b/individual-shell-tools/grep/script-06.sh index 0982dceff..44ca5557e 100755 --- a/individual-shell-tools/grep/script-06.sh +++ b/individual-shell-tools/grep/script-06.sh @@ -4,4 +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' *.txt \ No newline at end of file +grep -l '^Doctor:' *.txt diff --git a/individual-shell-tools/grep/script-07.sh b/individual-shell-tools/grep/script-07.sh index 960209981..cd9b5bd6a 100755 --- a/individual-shell-tools/grep/script-07.sh +++ b/individual-shell-tools/grep/script-07.sh @@ -4,4 +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:' *.txt \ No newline at end of file +grep -c '^Doctor:' *.txt diff --git a/individual-shell-tools/ls/script-01.sh b/individual-shell-tools/ls/script-01.sh index 071d4ba67..08e2ce18e 100755 --- a/individual-shell-tools/ls/script-01.sh +++ b/individual-shell-tools/ls/script-01.sh @@ -13,4 +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 -1 \ No newline at end of file +ls -1 diff --git a/individual-shell-tools/ls/script-02.sh b/individual-shell-tools/ls/script-02.sh index 758b7b1e1..e37bad14c 100755 --- a/individual-shell-tools/ls/script-02.sh +++ b/individual-shell-tools/ls/script-02.sh @@ -4,4 +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 -1 ./child-directory \ No newline at end of file +ls -1 ./child-directory diff --git a/individual-shell-tools/ls/script-03.sh b/individual-shell-tools/ls/script-03.sh index 89898a5b2..36d5c67e1 100755 --- a/individual-shell-tools/ls/script-03.sh +++ b/individual-shell-tools/ls/script-03.sh @@ -5,4 +5,4 @@ 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. -ls -R -1 \ No newline at end of file +ls -R -1 diff --git a/individual-shell-tools/ls/script-04.sh b/individual-shell-tools/ls/script-04.sh index 0c3d42d41..0345bb121 100755 --- a/individual-shell-tools/ls/script-04.sh +++ b/individual-shell-tools/ls/script-04.sh @@ -15,11 +15,11 @@ 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. -ls -1t -1 ./child-directory +ls -1t ./child-directory 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 -1tr ./child-directory \ No newline at end of file +ls -1tr ./child-directory diff --git a/individual-shell-tools/sed/script-01.sh b/individual-shell-tools/sed/script-01.sh index 57faad5ba..48ea0a0ec 100755 --- a/individual-shell-tools/sed/script-01.sh +++ b/individual-shell-tools/sed/script-01.sh @@ -5,4 +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' input.txt \ No newline at end of file +sed 's/i/I/g' input.txt diff --git a/individual-shell-tools/sed/script-02.sh b/individual-shell-tools/sed/script-02.sh index d3f70b8ce..be485a0af 100755 --- a/individual-shell-tools/sed/script-02.sh +++ b/individual-shell-tools/sed/script-02.sh @@ -5,4 +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' input.txt \ No newline at end of file +sed 's/[0-9]//g' input.txt diff --git a/individual-shell-tools/sed/script-03.sh b/individual-shell-tools/sed/script-03.sh index 07cb6a27c..1455db92c 100755 --- a/individual-shell-tools/sed/script-03.sh +++ b/individual-shell-tools/sed/script-03.sh @@ -4,4 +4,4 @@ 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' input.txt \ No newline at end of file +sed '/[0-9]/d' input.txt diff --git a/individual-shell-tools/sed/script-04.sh b/individual-shell-tools/sed/script-04.sh index ae19f6735..8ac6e7c5d 100755 --- a/individual-shell-tools/sed/script-04.sh +++ b/individual-shell-tools/sed/script-04.sh @@ -5,4 +5,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" input.txt \ No newline at end of file +sed "s/We'll/We will/g" input.txt diff --git a/individual-shell-tools/sed/script-05.sh b/individual-shell-tools/sed/script-05.sh index 6f1b7cba0..68582b6b8 100755 --- a/individual-shell-tools/sed/script-05.sh +++ b/individual-shell-tools/sed/script-05.sh @@ -6,4 +6,4 @@ 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/' input.txt \ No newline at end of file +sed -E 's/^([0-9]+) (.*)/\2 \1/' input.txt diff --git a/individual-shell-tools/sed/script-06.sh b/individual-shell-tools/sed/script-06.sh index 83a2adf02..c5eed9037 100755 --- a/individual-shell-tools/sed/script-06.sh +++ b/individual-shell-tools/sed/script-06.sh @@ -8,4 +8,4 @@ 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' input.txt \ No newline at end of file +sed -E 's/,([^ ])/, \1/g' input.txt diff --git a/individual-shell-tools/wc/script-01.sh b/individual-shell-tools/wc/script-01.sh index 17d35ef66..caa5a487b 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 helper-files/helper-3.txt \ No newline at end of file +wc -w helper-files/helper-3.txt diff --git a/individual-shell-tools/wc/script-02.sh b/individual-shell-tools/wc/script-02.sh index cdd372b18..095e380ab 100755 --- a/individual-shell-tools/wc/script-02.sh +++ b/individual-shell-tools/wc/script-02.sh @@ -4,4 +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 helper-files/helper-3.txt \ No newline at end of file +wc -l helper-files/helper-3.txt diff --git a/individual-shell-tools/wc/script-03.sh b/individual-shell-tools/wc/script-03.sh index 5fa01db1e..aa42fb8ab 100755 --- a/individual-shell-tools/wc/script-03.sh +++ b/individual-shell-tools/wc/script-03.sh @@ -9,4 +9,4 @@ set -euo pipefail # 3 19 92 ../helper-files/helper-3.txt # 5 30 151 total -wc helper-files/* \ No newline at end of file +wc helper-files/*