Skip to content
Open
Show file tree
Hide file tree
Changes from 6 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions individual-shell-tools/awk/script-01.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,5 @@
set -euo pipefail

# TODO: Write a command to output just the names of each player in `scores-table.txt`.
awk '{print $1}' scores-table.txt
# Your output should contain 6 lines, each with just one word on it.
1 change: 1 addition & 0 deletions individual-shell-tools/awk/script-02.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,5 @@
set -euo pipefail

# TODO: Write a command to output the names of each player, as well as their city.
awk '{print $1, $2}' scores-table.txt
# Your output should contain 6 lines, each with two words on it, separated by a space.
1 change: 1 addition & 0 deletions individual-shell-tools/awk/script-03.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,6 @@
set -euo pipefail

# TODO: Write a command to output just the names of each player along with the score from their first attempt.
awk '{print $1,$3}' scores-table.txt
# Your output should contain 6 lines, each with one word and one number on it.
# The first line should be "Ahmed 1".
1 change: 1 addition & 0 deletions individual-shell-tools/awk/script-04.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,6 @@
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.
awk '$2== "London" {print $1,$(NF) }' scores-table.txt
# Your output should contain 3 lines, each with one word and one number on it.
# The first line should be "Ahmed 4".
1 change: 1 addition & 0 deletions individual-shell-tools/awk/script-05.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,6 @@
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.
awk '{print $1,NF-2}' scores-table.txt
# Your output should contain 6 lines, each with one word and one number on it.
# The first line should be "Ahmed 3".
1 change: 1 addition & 0 deletions individual-shell-tools/awk/script-06-stretch.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,5 @@ set -euo pipefail
# NOTE: This is a stretch exercise - it is optional.

# TODO: Write a command to output the total of adding together all players' first scores.
awk '{sum+= $3} END {print sum}' scores-table.txt
# Your output should be exactly the number 54.
1 change: 1 addition & 0 deletions individual-shell-tools/awk/script-07-stretch.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,6 @@ set -euo pipefail
# NOTE: This is a stretch exercise - it is optional.

# TODO: Write a command to output just the names of each player along with the total of adding all of that player's scores.
awk ' {s=0; for(i=3; i<=NF; i++) s+=$i; print $1, s}' scores-table.txt
# 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"
1 change: 1 addition & 0 deletions individual-shell-tools/cat/script-01.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,5 @@
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.
cat ../helper-files/helper-1.txt
# The output of this command should be "Once upon a time...".
2 changes: 2 additions & 0 deletions individual-shell-tools/cat/script-02.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
set -euo pipefail

# TODO: Write a command to output the contents of all of the files inside the helper-files directory to the terminal.
cat ../helper-files/helper-1.txt ../helper-files/helper-2.txt ../helper-files/helper-3.txt

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there a way of doing the same without manually listing every file?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you ,I’ve updated the command as you suggested.


# Make sure you are only calling `cat` once.
#
# The output of this command should be:
Expand Down
2 changes: 2 additions & 0 deletions individual-shell-tools/cat/script-03.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
set -euo pipefail

# TODO: Write a command to output the contents of the file `helper-3.txt` inside the helper-files directory to the terminal.
cat -n ../helper-files/helper-3.txt

# This time, we also want to see the line numbers in the output.
#
# The output of this command should be something like:
Expand Down
1 change: 1 addition & 0 deletions individual-shell-tools/cat/script-04-stretch.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ set -euo pipefail
# NOTE: This is a stretch exercise - it is optional.

# TODO: Write a command to output the contents of all of the files in the helper-files directory to the terminal.
cat ../helper-files/helper-1.txt ../helper-files/helper-2.txt ../helper-files/helper-3.txt |awk '{print NR,$0}'
# We also want to see the line numbers in the output, but we want line numbers not to reset at the start of each file.
#
# The output of this command should be something like:
Expand Down
1 change: 1 addition & 0 deletions individual-shell-tools/grep/script-01.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,5 @@
set -euo pipefail

# TODO: Write a command to output every line in dialogue.txt said by the Doctor.
grep "^Doctor" dialogue.txt
# The output should contain 6 lines.
1 change: 1 addition & 0 deletions individual-shell-tools/grep/script-02.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,5 @@
set -euo pipefail

# TODO: Write a command to output every line in dialogue.txt that contains the word Doctor (regardless of case).
grep -i "Doctor" dialogue.txt
# The output should contain 9 lines.
1 change: 1 addition & 0 deletions individual-shell-tools/grep/script-03.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,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).
grep -ic "Doctor" dialogue.txt
# The output should be exactly the number 9.
1 change: 1 addition & 0 deletions individual-shell-tools/grep/script-04.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,5 @@
set -euo pipefail

# TODO: Write a command to output every line in dialogue.txt that does not contain the word "Hello" (regardless of case).
grep -vi "Hello" dialogue.txt
# The output should contain 10 lines.
1 change: 1 addition & 0 deletions individual-shell-tools/grep/script-05.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,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.
grep -i -B 1 "cure" dialogue.txt
# The output should contain two pairs of two lines of text (with a separator between them).
1 change: 1 addition & 0 deletions individual-shell-tools/grep/script-06.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,5 @@
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.
grep -l "Doctor" *.txt
# The output should contain two filenames.
1 change: 1 addition & 0 deletions individual-shell-tools/grep/script-07.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,5 @@
set -euo pipefail

# TODO: Write a command to output, for each `.txt` file in this directory, how many lines of dialogue the Doctor has.
grep -c "^Doctor" *.txt
# The output should show that dialogue.txt contains 6 lines, dialogue-2.txt contains 2, and dialogue-3.txt contains 0.
1 change: 1 addition & 0 deletions individual-shell-tools/ls/script-01.sh
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,5 @@ if [[ "${script_dir}" != "$(pwd)" ]]; then
fi

# TODO: Write a command to list the files and folders in this directory.
ls
# The output should be a list of names including child-directory, script-01.sh, script-02.sh, and more.
1 change: 1 addition & 0 deletions individual-shell-tools/ls/script-02.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,5 @@
set -euo pipefail

# TODO: Write a command which lists all of the files in the directory named child-directory.
ls child-directory
# The output should be a list of names: helper-1.txt, helper-2.txt, helper-3.txt.
1 change: 1 addition & 0 deletions individual-shell-tools/ls/script-03.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,6 @@
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.
ls -R
# 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.
2 changes: 2 additions & 0 deletions individual-shell-tools/ls/script-04.sh
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,12 @@ touch "${script_dir}/child-directory/helper-3.txt"
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.
ls -1t child-directory
# The output should be a list of names in this order, one per line: helper-3.txt, helper-1.txt, helper-2.txt.


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).
ls -1tr child-directory
# The output should be a list of names in this order, one per line: helper-2.txt, helper-1.txt, helper-3.txt.
1 change: 1 addition & 0 deletions individual-shell-tools/sed/script-01.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,6 @@
set -euo pipefail

# TODO: Write a command to output input.txt with all occurrences of the letter `i` replaced with `I`.
sed 's/i/I/g' input.txt
# The output should contain 11 lines.
# The first line of the output should be: "ThIs Is a sample fIle for experImentIng with sed.".
1 change: 1 addition & 0 deletions individual-shell-tools/sed/script-02.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,6 @@
set -euo pipefail

# TODO: Write a command to output input.txt with numbers removed.
sed 's/[0-9]//g' input.txt
# The output should contain 11 lines.
# Line 6 of the output should be " Alisha".
1 change: 1 addition & 0 deletions individual-shell-tools/sed/script-03.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,5 @@
set -euo pipefail

# TODO: Write a command to output input.txt removing any line which contains a number.
sed '/[0-9]/d' input.txt
# The output should contain 6 lines.
1 change: 1 addition & 0 deletions individual-shell-tools/sed/script-04.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,5 @@
set -euo pipefail

# TODO: Write a command to output input.txt replacing every occurrence of the string "We'll" with "We will".
sed "s/We'll/We will/g" input.txt
# The output should contain 11 lines.
1 change: 1 addition & 0 deletions individual-shell-tools/sed/script-05.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
set -euo pipefail

# TODO: Write a command to output input.txt with one change:
sed 's/^\([0-9]\+\) \(.*\)/\2 \1/' input.txt
# 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.
1 change: 1 addition & 0 deletions individual-shell-tools/sed/script-06.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
set -euo pipefail

# TODO: Write a command to output input.txt with one fix:
sed 's/,\([^ ]\)/, \1/g' input.txt
# If a comma in input.txt is not followed by a space, add a space after.
# If there is already a space after a comma, do not add an additional space.
# The output should contain 11 lines.
Expand Down
1 change: 1 addition & 0 deletions individual-shell-tools/wc/script-01.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,5 @@
set -euo pipefail

# TODO: Write a command to output the number of words in the file helper-files/helper-3.txt.
wc -w < ../helper-files/helper-3.txt
# The output should include the number 19. The output should not include the number 92.
1 change: 1 addition & 0 deletions individual-shell-tools/wc/script-02.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,5 @@
set -euo pipefail

# TODO: Write a command to output the number of lines in the file helper-files/helper-3.txt.
wc -l < ../helper-files/helper-3.txt
# The output should include the number 3. The output should not include the number 19.
1 change: 1 addition & 0 deletions individual-shell-tools/wc/script-03.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
set -euo pipefail

# TODO: Write a command to output the number of lines, words, and characters in all of the files inside the helper-files directory.
wc -lwc ../helper-files/helper-1.txt ../helper-files/helper-2.txt ../helper-files/helper-3.txt
# The output should be something like:
# 1 4 20 ../helper-files/helper-1.txt
# 1 7 39 ../helper-files/helper-2.txt
Expand Down