From 7301d0cb8d4462aa1eee832c70848604f7265017 Mon Sep 17 00:00:00 2001 From: Alaa Date: Thu, 10 Jul 2025 07:05:52 +0100 Subject: [PATCH 01/36] Complete TODO: list files and folders using ls -1p --- 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 241b62f5..d86aec37 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 -1p \ No newline at end of file From 3acdded11baf151c313fbc69d299096c4b7ebbf4 Mon Sep 17 00:00:00 2001 From: Alaa Date: Thu, 10 Jul 2025 07:13:10 +0100 Subject: [PATCH 02/36] List files in child-directory using ls -1 --- 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 d0a5a10f..cb041cee 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 31c0db14b5d328c30d93d5118cf7612931e3226d Mon Sep 17 00:00:00 2001 From: Alaa Date: Thu, 10 Jul 2025 07:22:07 +0100 Subject: [PATCH 03/36] Add recursive file listing using 'find .' in script-03.sh --- 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 781216d2..f4382670 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. +find . \ No newline at end of file From ae728ff0ca0c1e716888a357f1f919c3a3589e75 Mon Sep 17 00:00:00 2001 From: Alaa Date: Thu, 10 Jul 2025 07:33:00 +0100 Subject: [PATCH 04/36] Add commands to list files in child-directory by modified time (newest and oldest) --- 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 72f3817b..08152322 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. - +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 From afbc113593975d325fd101cc13c5ab75a066b0c0 Mon Sep 17 00:00:00 2001 From: Alaa Date: Thu, 10 Jul 2025 10:06:52 +0100 Subject: [PATCH 05/36] Display contents of helper-1.txt from helper-files directory using cat --- 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 c85053e0..94ceeb4f 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 2959639c89b9ddd68e9cdaaa5eaed191dbb38361 Mon Sep 17 00:00:00 2001 From: Alaa Date: Thu, 10 Jul 2025 10:07:51 +0100 Subject: [PATCH 06/36] Use cat to output contents of all helper-files in one command --- 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 01bbd5ea..4a045acf 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/* \ No newline at end of file From 67cd8d1d5d3fdfe16e9f39ac5422a350aaed5447 Mon Sep 17 00:00:00 2001 From: Alaa Date: Thu, 10 Jul 2025 10:08:36 +0100 Subject: [PATCH 07/36] Add command to display helper-3.txt with line numbers using cat -n --- 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 37573b0c..e4c6d99f 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 ../helper-files/helper-3.txt \ No newline at end of file From e7cf00b50453e82065cbca25cc1d6e39d2d511d4 Mon Sep 17 00:00:00 2001 From: Alaa Date: Thu, 10 Jul 2025 10:10:38 +0100 Subject: [PATCH 08/36] Add command to display all helper-files contents with continuous line numbering --- 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 00fe3c48..f33001e0 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 4a0da15da76f0e2591ed39c08b105c4de9de1953 Mon Sep 17 00:00:00 2001 From: Alaa Date: Thu, 10 Jul 2025 10:16:18 +0100 Subject: [PATCH 09/36] Add word count command for helper-3.txt --- 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 c9dd6e5d..2b1e87d6 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 a91aca17a087f51cd3a85451c625bd9496e55fd0 Mon Sep 17 00:00:00 2001 From: Alaa Date: Thu, 10 Jul 2025 10:21:42 +0100 Subject: [PATCH 10/36] Count lines in helper-3.txt --- 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 8feeb1a6..16e53091 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 From f480689bdc607a4cd9cf03cb588855212720a270 Mon Sep 17 00:00:00 2001 From: Alaa Date: Thu, 10 Jul 2025 10:25:49 +0100 Subject: [PATCH 11/36] Add wc command to count lines, words, and characters in helper-files --- 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 6b2e9d3d..e6fdd869 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 ../helper-files/* \ No newline at end of file From 4db4b1fe97a3ebc12c50ff6ec6aa1af3aef6d642 Mon Sep 17 00:00:00 2001 From: Alaa Date: Thu, 10 Jul 2025 15:22:36 +0100 Subject: [PATCH 12/36] Update script-03.sh --- individual-shell-tools/ls/script-03.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/individual-shell-tools/ls/script-03.sh b/individual-shell-tools/ls/script-03.sh index f4382670..b7635ba3 100755 --- a/individual-shell-tools/ls/script-03.sh +++ b/individual-shell-tools/ls/script-03.sh @@ -5,4 +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. -find . \ No newline at end of file +# find . +ls -R \ No newline at end of file From 83f5fdbee3872b7bc780c2ae268be280a57dcf34 Mon Sep 17 00:00:00 2001 From: Alaa Date: Thu, 10 Jul 2025 17:34:38 +0100 Subject: [PATCH 13/36] Print all lines said by the Doctor from dialogue.txt using grep --- 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 fb05f42f..72cd51b5 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:" dialogue.txt \ No newline at end of file From ea7b162ae81898d921b783478146c4f1494b8d14 Mon Sep 17 00:00:00 2001 From: Alaa Date: Thu, 10 Jul 2025 17:37:42 +0100 Subject: [PATCH 14/36] Print lines from dialogue.txt containing 'Doctor' (case-insensitive) --- 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 df6f8564..31d35703 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" dialogue.txt From 8aae68f1d11e7130c30db18aa4a6ca1766b27e17 Mon Sep 17 00:00:00 2001 From: Alaa Date: Thu, 10 Jul 2025 17:40:37 +0100 Subject: [PATCH 15/36] Count lines in dialogue.txt containing 'Doctor' (case-insensitive) --- individual-shell-tools/grep/script-03.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/individual-shell-tools/grep/script-03.sh b/individual-shell-tools/grep/script-03.sh index 5383fe57..34aa1e5a 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 From 0b0b2dca521f2ad6a79f0f05ca1f4b6b3c2f2ad1 Mon Sep 17 00:00:00 2001 From: Alaa Date: Thu, 10 Jul 2025 17:42:47 +0100 Subject: [PATCH 16/36] Filter lines not containing 'Hello' (case-insensitive) from dialogue.txt using grep --- 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 80ee0477..3daf6864 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 From 1c634c2a1c08f802c5733135726b2f81fad933db Mon Sep 17 00:00:00 2001 From: Alaa Date: Thu, 10 Jul 2025 17:46:28 +0100 Subject: [PATCH 17/36] Print lines containing 'cure' and the previous line from dialogue.txt --- individual-shell-tools/grep/script-05.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/individual-shell-tools/grep/script-05.sh b/individual-shell-tools/grep/script-05.sh index 1eb53818..a7e28a47 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 From e21e4b197bc3155256a25de080f67db381166408 Mon Sep 17 00:00:00 2001 From: Alaa Date: Thu, 10 Jul 2025 18:17:13 +0100 Subject: [PATCH 18/36] Add script to list .txt files containing lines spoken by the Doctor --- individual-shell-tools/grep/script-06.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/individual-shell-tools/grep/script-06.sh b/individual-shell-tools/grep/script-06.sh index 5670e3b6..b20d6564 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 From f9565de3e1c69ea2e05760547bd6f48beccbcbbb Mon Sep 17 00:00:00 2001 From: Alaa Date: Thu, 10 Jul 2025 18:21:50 +0100 Subject: [PATCH 19/36] Add script to count lines of Doctor's dialogue in each .txt file --- individual-shell-tools/grep/script-07.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/individual-shell-tools/grep/script-07.sh b/individual-shell-tools/grep/script-07.sh index 9670ebad..9fabc87f 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 From afc093aeb5fe7a6cb4f4fd6fb27a0f39269682e2 Mon Sep 17 00:00:00 2001 From: Alaa Date: Fri, 11 Jul 2025 06:18:54 +0100 Subject: [PATCH 20/36] Replace all occurrences of 'i' with 'I' in input.txt --- individual-shell-tools/sed/script-01.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/individual-shell-tools/sed/script-01.sh b/individual-shell-tools/sed/script-01.sh index 3eba6fa4..d3db0cc4 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 From 28a6bf1432cef86e807611db9b63b2afea031c4d Mon Sep 17 00:00:00 2001 From: Alaa Date: Fri, 11 Jul 2025 06:51:15 +0100 Subject: [PATCH 21/36] Remove numbers from input.txt --- 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 abdd64d0..d3f70b8c 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 From 9209562e114a0c0a8f93644042c5fa776d2ea0b1 Mon Sep 17 00:00:00 2001 From: Alaa Date: Fri, 11 Jul 2025 06:57:39 +0100 Subject: [PATCH 22/36] Filter out lines containing digits from input.txt --- 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 dd284a29..6eae8b2c 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' input.txt \ No newline at end of file From 7f6d32b4faffe7bd3a1de43cc7b72987782d9d1c Mon Sep 17 00:00:00 2001 From: Alaa Date: Fri, 11 Jul 2025 07:03:14 +0100 Subject: [PATCH 23/36] Replace 'We'll' with 'We will' in input.txt --- 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 0052ac6c..a3533f32 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' input.txt From 194a94eec1769436452f4e11d19599cbfe008a49 Mon Sep 17 00:00:00 2001 From: Alaa Date: Fri, 11 Jul 2025 07:09:11 +0100 Subject: [PATCH 24/36] Transform lines starting with number and name into 'name number' format --- individual-shell-tools/sed/script-05.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/individual-shell-tools/sed/script-05.sh b/individual-shell-tools/sed/script-05.sh index 2dcc91a0..a4908897 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 From b5869cf73cda938dd03923eaa5fbed6b637dc2ff Mon Sep 17 00:00:00 2001 From: Alaa Date: Fri, 11 Jul 2025 07:14:23 +0100 Subject: [PATCH 25/36] Fix commas in input.txt --- individual-shell-tools/sed/script-06.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/individual-shell-tools/sed/script-06.sh b/individual-shell-tools/sed/script-06.sh index 0b939017..4655f458 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 's/,\([^ ]\)/, \1/g' input.txt \ No newline at end of file From eb61a1f359fae295e7074766afc856012a38bd89 Mon Sep 17 00:00:00 2001 From: Alaa Date: Fri, 11 Jul 2025 07:18:44 +0100 Subject: [PATCH 26/36] Print names from scores-table.txt --- 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 8db4390a..824e4c58 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 From f11876291076da7100f2e553b4ae8eff2024d024 Mon Sep 17 00:00:00 2001 From: Alaa Date: Fri, 11 Jul 2025 07:22:55 +0100 Subject: [PATCH 27/36] Extract player names and cities --- 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 5956be9b..5559ca2f 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 From 9bd47c9ac6bb49b193fc0264653e11d37fe0fd8d Mon Sep 17 00:00:00 2001 From: Alaa Date: Fri, 11 Jul 2025 08:10:31 +0100 Subject: [PATCH 28/36] Extract player names and their first attempt --- 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 af7c6e8b..87c511f6 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 From c53393c5f8f749613615c9f34933f208c790fd1d Mon Sep 17 00:00:00 2001 From: Alaa Date: Fri, 11 Jul 2025 08:12:32 +0100 Subject: [PATCH 29/36] Extract London players and their last scores --- 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 bf15703c..23d8eaf7 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 From 8ced415b5a181b003ed00b53bfd72f5447703672 Mon Sep 17 00:00:00 2001 From: Alaa Date: Fri, 11 Jul 2025 08:14:38 +0100 Subject: [PATCH 30/36] Print each player's name with number of games played --- 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 d1680cb0..40ba29a1 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 'NF { printf "%s %d\n", $1, NF-2 }' scores-table.txt \ No newline at end of file From 65a82d792dc5c7fe566691ccad46476c48f21d5e Mon Sep 17 00:00:00 2001 From: Alaa Date: Fri, 11 Jul 2025 08:18:20 +0100 Subject: [PATCH 31/36] Calculate sum of all players --- 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 0201e637..841f6019 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 From 0e1bd4f99f471532b2346675064d0a3cbf712ebf Mon Sep 17 00:00:00 2001 From: Alaa Date: Fri, 11 Jul 2025 08:20:37 +0100 Subject: [PATCH 32/36] Print each player's name and total score --- individual-shell-tools/awk/script-07-stretch.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/individual-shell-tools/awk/script-07-stretch.sh b/individual-shell-tools/awk/script-07-stretch.sh index 3f715588..3ce92488 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 = 3; i <= NF; i++) total += $i; print $1, total }' scores-table.txt From 4f2336de13da1293c5f8f320a8cb9d7a7938054f Mon Sep 17 00:00:00 2001 From: Alaa Date: Fri, 11 Jul 2025 08:34:31 +0100 Subject: [PATCH 33/36] Print all London players with their score --- individual-shell-tools/awk/script-04.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/individual-shell-tools/awk/script-04.sh b/individual-shell-tools/awk/script-04.sh index 23d8eaf7..e7198a33 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.txts \ No newline at end of file From 1c731799b1bd515fd469894b672b7b9a9ec67455 Mon Sep 17 00:00:00 2001 From: Alaa Date: Thu, 31 Jul 2025 22:08:08 +0100 Subject: [PATCH 34/36] Fix: error rename the reading file --- individual-shell-tools/awk/script-04.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/individual-shell-tools/awk/script-04.sh b/individual-shell-tools/awk/script-04.sh index e7198a33..23d8eaf7 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.txts \ No newline at end of file +awk '$2 == "London" {print $1, $NF}' scores-table.txt \ No newline at end of file From 682d14ac606efd90126ced53831fd0b1e9e00845 Mon Sep 17 00:00:00 2001 From: Alaa Date: Thu, 31 Jul 2025 22:21:59 +0100 Subject: [PATCH 35/36] Remove NF because txt file has no empty lines --- individual-shell-tools/awk/script-05.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/individual-shell-tools/awk/script-05.sh b/individual-shell-tools/awk/script-05.sh index 40ba29a1..58bcaf27 100755 --- a/individual-shell-tools/awk/script-05.sh +++ b/individual-shell-tools/awk/script-05.sh @@ -5,4 +5,5 @@ 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 'NF { printf "%s %d\n", $1, NF-2 }' scores-table.txt \ No newline at end of file +awk '{ print $1, NF - 2 }' scores-table.txt + From a6bbbed8600d2cb8824cdd2dd005dee393d66dcf Mon Sep 17 00:00:00 2001 From: Alaa Date: Thu, 31 Jul 2025 22:37:08 +0100 Subject: [PATCH 36/36] Change the command --- individual-shell-tools/grep/script-03.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/individual-shell-tools/grep/script-03.sh b/individual-shell-tools/grep/script-03.sh index 34aa1e5a..dfdf23e1 100755 --- a/individual-shell-tools/grep/script-03.sh +++ b/individual-shell-tools/grep/script-03.sh @@ -4,4 +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 -i 'doctor' dialogue.txt | wc -l \ No newline at end of file +# grep -i 'doctor' dialogue.txt | wc -l +grep -i -c 'doctor' dialogue.txt