From 01996da887fea6ea0dccd62e403f4640fc728d64 Mon Sep 17 00:00:00 2001 From: aiah ibrahim Date: Fri, 18 Jul 2025 17:36:21 +0100 Subject: [PATCH 1/3] ls-grep solved --- shell-pipelines/ls-grep/script-01.sh | 2 +- shell-pipelines/ls-grep/script-02.sh | 2 +- shell-pipelines/ls-grep/script-03.sh | 3 ++- shell-pipelines/ls-grep/script-04.sh | 2 +- 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/shell-pipelines/ls-grep/script-01.sh b/shell-pipelines/ls-grep/script-01.sh index 8c7d968a..d0d24b8b 100755 --- a/shell-pipelines/ls-grep/script-01.sh +++ b/shell-pipelines/ls-grep/script-01.sh @@ -1,6 +1,6 @@ #!/bin/bash set -euo pipefail - +ls -1 sample-files | grep '[A-Z]' # TODO: Write a command to output the names of the files in the sample-files directory whose name contains at least one upper case letter. # Your output should contain 11 files. diff --git a/shell-pipelines/ls-grep/script-02.sh b/shell-pipelines/ls-grep/script-02.sh index 16f5f71d..95709ff0 100755 --- a/shell-pipelines/ls-grep/script-02.sh +++ b/shell-pipelines/ls-grep/script-02.sh @@ -1,6 +1,6 @@ #!/bin/bash set -euo pipefail - +ls -1 sample-files | grep '^[A-Z]' # TODO: Write a command to output the names of the files in the sample-files directory whose name starts with an upper case letter. # Your output should contain 10 files. diff --git a/shell-pipelines/ls-grep/script-03.sh b/shell-pipelines/ls-grep/script-03.sh index a302ab03..00b0b53d 100755 --- a/shell-pipelines/ls-grep/script-03.sh +++ b/shell-pipelines/ls-grep/script-03.sh @@ -1,6 +1,7 @@ #!/bin/bash set -euo pipefail - +ls -1 sample-files | grep '^[A-Z]' | grep -v '.*[A-Z].*[A-Z]' # TODO: Write a command to output the names of the files in the sample-files directory whose name starts with an upper case letter and doesn't contain any other upper case letters. # Your output should contain 7 files. + diff --git a/shell-pipelines/ls-grep/script-04.sh b/shell-pipelines/ls-grep/script-04.sh index c000b7e3..1275129e 100755 --- a/shell-pipelines/ls-grep/script-04.sh +++ b/shell-pipelines/ls-grep/script-04.sh @@ -1,6 +1,6 @@ #!/bin/bash set -euo pipefail - +ls -1 sample-files | grep '^[A-Z]' | grep -v '.*[A-Z].*[A-Z]' | wc -l # TODO: Write a command to count the number of files in the sample-files directory whose name starts with an upper case letter and doesn't contain any other upper case letters. # Your output should be the number 7. From 0b72d6576385171565c7e2c6232a96ab5d8cca65 Mon Sep 17 00:00:00 2001 From: aiah ibrahim Date: Fri, 18 Jul 2025 19:34:21 +0100 Subject: [PATCH 2/3] sort-uniq-head-tail solved --- shell-pipelines/sort-uniq-head-tail/script-01.sh | 2 +- shell-pipelines/sort-uniq-head-tail/script-02.sh | 2 +- shell-pipelines/sort-uniq-head-tail/script-03.sh | 2 +- shell-pipelines/sort-uniq-head-tail/script-04.sh | 3 +++ shell-pipelines/sort-uniq-head-tail/script-05.sh | 2 +- shell-pipelines/sort-uniq-head-tail/script-06.sh | 1 + shell-pipelines/sort-uniq-head-tail/script-07.sh | 1 + 7 files changed, 9 insertions(+), 4 deletions(-) diff --git a/shell-pipelines/sort-uniq-head-tail/script-01.sh b/shell-pipelines/sort-uniq-head-tail/script-01.sh index 171e1f98..f4bca02d 100755 --- a/shell-pipelines/sort-uniq-head-tail/script-01.sh +++ b/shell-pipelines/sort-uniq-head-tail/script-01.sh @@ -1,7 +1,7 @@ #!/bin/bash set -euo pipefail - +sort scores-table.txt # The input for this script is the scores-table.txt file. # TODO: Write a command to output scores-table.txt, with lines sorted by the person's name. # The first line of your output should be "Ahmed London 1 10 4" (with no quotes). And the third line should be "Chandra Birmingham 12 6". diff --git a/shell-pipelines/sort-uniq-head-tail/script-02.sh b/shell-pipelines/sort-uniq-head-tail/script-02.sh index 29c3c252..1eaf4cd9 100755 --- a/shell-pipelines/sort-uniq-head-tail/script-02.sh +++ b/shell-pipelines/sort-uniq-head-tail/script-02.sh @@ -1,7 +1,7 @@ #!/bin/bash set -euo pipefail - +sort -k3nr scores-table.txt # The input for this script is the scores-table.txt file. # TODO: Write a command to output scores-table.txt, with lines sorted by the person's first score, descending. # The first line of your output should be "Basia London 22 9 6" (with no quotes). diff --git a/shell-pipelines/sort-uniq-head-tail/script-03.sh b/shell-pipelines/sort-uniq-head-tail/script-03.sh index bcbaf342..6d0e29f8 100755 --- a/shell-pipelines/sort-uniq-head-tail/script-03.sh +++ b/shell-pipelines/sort-uniq-head-tail/script-03.sh @@ -1,7 +1,7 @@ #!/bin/bash set -euo pipefail - +sort -k3nr scores-table.txt | head -n3 # The input for this script is the scores-table.txt file. # TODO: Write a command to output scores-table.txt, with shows the lines for the three players with the highest first score, in descending order. # Your output should be: diff --git a/shell-pipelines/sort-uniq-head-tail/script-04.sh b/shell-pipelines/sort-uniq-head-tail/script-04.sh index 65a5cfba..8b61ad0f 100755 --- a/shell-pipelines/sort-uniq-head-tail/script-04.sh +++ b/shell-pipelines/sort-uniq-head-tail/script-04.sh @@ -1,7 +1,10 @@ #!/bin/bash +#!/bin/bash set -euo pipefail +sort -k3n scores-table.txt | tail -n2 | head -n1 + # The input for this script is the scores-table.txt file. # TODO: Write a command to output scores-table.txt, with shows the line for the player whose first score was the second highest. # Your output should be: "Piotr Glasgow 15 2 25 11 8" (without quotes). diff --git a/shell-pipelines/sort-uniq-head-tail/script-05.sh b/shell-pipelines/sort-uniq-head-tail/script-05.sh index a93cd9f9..4068c5c6 100755 --- a/shell-pipelines/sort-uniq-head-tail/script-05.sh +++ b/shell-pipelines/sort-uniq-head-tail/script-05.sh @@ -1,7 +1,7 @@ #!/bin/bash set -euo pipefail - +sort -u events.txt # The input for this script is the events.txt file. # TODO: Write a command to show a list of all events that have happened, without duplication. # The order they're displayed doesn't matter, but we never want to see the same event listed twice. diff --git a/shell-pipelines/sort-uniq-head-tail/script-06.sh b/shell-pipelines/sort-uniq-head-tail/script-06.sh index 715c7ae5..cb856811 100755 --- a/shell-pipelines/sort-uniq-head-tail/script-06.sh +++ b/shell-pipelines/sort-uniq-head-tail/script-06.sh @@ -1,6 +1,7 @@ #!/bin/bash set -euo pipefail +awk '{print $1}' events.txt | sort | uniq -c | awk '{print "There have been", $1 , $2, "events."}' # The input for this script is the events.txt file. # TODO: Write a command to show how many times anyone has entered and exited. diff --git a/shell-pipelines/sort-uniq-head-tail/script-07.sh b/shell-pipelines/sort-uniq-head-tail/script-07.sh index 7fd07e1f..9227c1fc 100755 --- a/shell-pipelines/sort-uniq-head-tail/script-07.sh +++ b/shell-pipelines/sort-uniq-head-tail/script-07.sh @@ -1,6 +1,7 @@ #!/bin/bash set -euo pipefail +awk '{print $3}' events-with-timestamps.txt | sort | grep -E 'Entry|Exit' | uniq -c # The input for this script is the events-with-timestamps.txt file. # TODO: Write a command to show how many times anyone has entered and exited. From 6579e80edc54ec8a5ec5ec084d92bd346dbaec03 Mon Sep 17 00:00:00 2001 From: aiah ibrahim Date: Fri, 18 Jul 2025 19:41:36 +0100 Subject: [PATCH 3/3] tr solved --- shell-pipelines/tr/script-01.sh | 2 +- shell-pipelines/tr/script-02.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/shell-pipelines/tr/script-01.sh b/shell-pipelines/tr/script-01.sh index 8bb0211e..9c091cca 100755 --- a/shell-pipelines/tr/script-01.sh +++ b/shell-pipelines/tr/script-01.sh @@ -1,7 +1,7 @@ #!/bin/bash set -euo pipefail - +cat text.txt | tr '!' '.' # The input for this script is the text.txt file, which contains an email. # The author got feedback that they're using too many exclamation marks (!). # diff --git a/shell-pipelines/tr/script-02.sh b/shell-pipelines/tr/script-02.sh index cf3a503a..5ce605c0 100755 --- a/shell-pipelines/tr/script-02.sh +++ b/shell-pipelines/tr/script-02.sh @@ -1,7 +1,7 @@ #!/bin/bash set -euo pipefail - +cat text.txt | tr 'zy' 'yz' # The input for this script is the text.txt file, which contains an email. # Unfortunately, the author wrote it using a German keyboard which has the Y and Z keys swapped, # so every Y should be a Z, and every Z should be a Y!