Fall 2026
  • Discord
  • Gradescope
  • Syllabus

On this page

  • Question 1
  • Question 2
  • Question 3
  • Question 4
  • Question 5
  • Question 6
  • Question 7
  • Question 8
  • Question 9
  • Question 10
  • Question 11
  • Question 12
  • Question 13
  • Question 14
  • Question 15
  • Question 16
  • Question 17
  • Question 18
  • Question 19
  • Question 20
  • Question 21
  • Question 22
  • Question 23
  • Question 24
  • Question 25
  • Question 26

Glob and Regex: Practice Questions

For each snippet, write the output of its final command. If it prints nothing, write “No Output”.

Each snippet starts in a new, empty directory.

Question 1

echo 'hello world' > README.md
echo 'hola mundo' > README.txt
echo 'salve munde' > README
ls RE* | wc -l
Answer
3

Question 2

echo 'hello world' > README.md
echo 'hola mundo' > README.txt
echo 'salve munde' > README
ls *.txt | wc -l
Answer
1

Question 3

echo 'hello world' > README.md
echo 'hola mundo' > README.txt
echo 'salve munde' > README
cat *.* | wc -l
Answer
2

Question 4

echo 'hello world'      > README.en # english
echo 'hola mundo'       > README.es # spanish
echo 'salve munde'      > README.la # latin
echo 'hallo welt'       > README.de # german
echo 'ola mundo'        > README.pt # portuguese
echo 'bonjour le monde' > README.fr # french
echo 'saluton mondo'    > README.epo # esperanto
cat *e | wc -l
Answer
1

Question 5

echo 'hello world'      > README.en # english
echo 'hola mundo'       > README.es # spanish
echo 'salve munde'      > README.la # latin
echo 'hallo welt'       > README.de # german
echo 'ola mundo'        > README.pt # portuguese
echo 'bonjour le monde' > README.fr # french
echo 'saluton mondo'    > README.epo # esperanto
cat README.?? | wc -l
Answer
6

Question 6

echo 'hello world'      > README.en # english
echo 'hola mundo'       > README.es # spanish
echo 'salve munde'      > README.la # latin
echo 'hallo welt'       > README.de # german
echo 'ola mundo'        > README.pt # portuguese
echo 'bonjour le monde' > README.fr # french
echo 'saluton mondo'    > README.epo # esperanto
cat README.??? | wc -l
Answer
1

Question 7

echo 'hello world'      > README.en # english
echo 'hola mundo'       > README.es # spanish
echo 'salve munde'      > README.la # latin
echo 'hallo welt'       > README.de # german
echo 'ola mundo'        > README.pt # portuguese
echo 'bonjour le monde' > README.fr # french
echo 'saluton mondo'    > README.epo # esperanto
cat README.e? | wc -l
Answer
2

Question 8

echo 'hello world'      > README.en # english
echo 'hola mundo'       > README.es # spanish
echo 'salve munde'      > README.la # latin
echo 'hallo welt'       > README.de # german
echo 'ola mundo'        > README.pt # portuguese
echo 'bonjour le monde' > README.fr # french
echo 'saluton mondo'    > README.epo # esperanto
cat README.[elf]? | wc -l
Answer
4

Question 9

echo 'hello world'      > README.en # english
echo 'hola mundo'       > README.es # spanish
echo 'salve munde'      > README.la # latin
echo 'hallo welt'       > README.de # german
echo 'ola mundo'        > README.pt # portuguese
echo 'bonjour le monde' > README.fr # french
echo 'saluton mondo'    > README.epo # esperanto
cat README.[!elf]? | wc -l
Answer
2

Question 10

mkdir romance
mkdir germanic
echo 'hello world'      > romance/README.en # english
echo 'hola mundo'       > romance/README.es # spanish
echo 'salve munde'      > romance/README.la # latin
echo 'hallo welt'       > germanic/README.de # german
echo 'hallo wereld'     > germanic/README.nl # dutch
echo 'hej verden'       > germanic/README.da # danish
echo 'hei verden'       > germanic/README.no # norwegian
echo 'ola mundo'        > romance/README.pt # portuguese
echo 'bonjour le monde' > romance/README.fr # french
echo 'saluton mondo'    > romance/README.epo # esperanto
cat romance/README.[!elf]? | wc -l
Answer
1

Question 11

mkdir romance
mkdir germanic
echo 'hello world'      > romance/README.en # english
echo 'hola mundo'       > romance/README.es # spanish
echo 'salve munde'      > romance/README.la # latin
echo 'hallo welt'       > germanic/README.de # german
echo 'hallo wereld'     > germanic/README.nl # dutch
echo 'hej verden'       > germanic/README.da # danish
echo 'hei verden'       > germanic/README.no # norwegian
echo 'ola mundo'        > romance/README.pt # portuguese
echo 'bonjour le monde' > romance/README.fr # french
echo 'saluton mondo'    > romance/README.epo # esperanto
cat */README.[!elf]? | wc -l
Answer
5

Question 12

mkdir romance
mkdir germanic
echo 'hello world'      > romance/README.en # english
echo 'hola mundo'       > romance/README.es # spanish
echo 'salve munde'      > romance/README.la # latin
echo 'hallo welt'       > germanic/README.de # german
echo 'hallo wereld'     > germanic/README.nl # dutch
echo 'hej verden'       > germanic/README.da # danish
echo 'hei verden'       > germanic/README.no # norwegian
echo 'ola mundo'        > romance/README.pt # portuguese
echo 'bonjour le monde' > romance/README.fr # french
echo 'saluton mondo'    > romance/README.epo # esperanto
cat *a*/README.??? | wc -l
Answer
1

Question 13

echo 'hello world' > README.md
echo 'hola mundo' > README.txt
echo 'salve munde' > README
cat > example.py <<EOF
import glob
paths = glob.glob('*.*')
print(len(paths))
EOF
python3 example.py
Answer
3

Question 14

echo 'hello world'      > README.en # english
echo 'hola mundo'       > README.es # spanish
echo 'salve munde'      > README.la # latin
echo 'hallo welt'       > README.de # german
echo 'ola mundo'        > README.pt # portuguese
echo 'bonjour le monde' > README.fr # french
echo 'saluton mondo'    > README.epo # esperanto
cat > example.py <<EOF
import glob
paths = glob.glob('README.[elf]?')
print(len(paths))
EOF
python3 example.py
Answer
4

Question 15

mkdir romance
mkdir germanic
echo 'hello world'      > romance/README.en # english
echo 'hola mundo'       > romance/README.es # spanish
echo 'salve munde'      > romance/README.la # latin
echo 'hallo welt'       > germanic/README.de # german
echo 'hallo wereld'     > germanic/README.nl # dutch
echo 'hej verden'       > germanic/README.da # danish
echo 'hei verden'       > germanic/README.no # norwegian
echo 'ola mundo'        > romance/README.pt # portuguese
echo 'bonjour le monde' > romance/README.fr # french
echo 'saluton mondo'    > romance/README.epo # esperanto
cat > example.py <<EOF
import glob
paths = glob.glob('*/README.[!elf]?')
print(len(paths))
EOF
python3 example.py
Answer
5

Question 16

echo 'hello world' > README.md
echo 'hola mundo' > README.txt
echo 'salve munde' > README
cat > example.py <<EOF
import sys
print(len(sys.argv))
EOF
python3 example.py *.*
Answer
4

Question 17

echo 'hello world'      > README.en # english
echo 'hola mundo'       > README.es # spanish
echo 'salve munde'      > README.la # latin
echo 'hallo welt'       > README.de # german
echo 'ola mundo'        > README.pt # portuguese
echo 'bonjour le monde' > README.fr # french
echo 'saluton mondo'    > README.epo # esperanto
cat > example.py <<EOF
import sys
print(len(sys.argv))
EOF
python3 example.py README.[elf]?
Answer
5

Question 18

mkdir romance
mkdir germanic
echo 'hello world'      > romance/README.en # english
echo 'hola mundo'       > romance/README.es # spanish
echo 'salve munde'      > romance/README.la # latin
echo 'hallo welt'       > germanic/README.de # german
echo 'hallo wereld'     > germanic/README.nl # dutch
echo 'hej verden'       > germanic/README.da # danish
echo 'hei verden'       > germanic/README.no # norwegian
echo 'ola mundo'        > romance/README.pt # portuguese
echo 'bonjour le monde' > romance/README.fr # french
echo 'saluton mondo'    > romance/README.epo # esperanto
cat > example.py <<EOF
import sys
print(len(sys.argv))
EOF
python3 example.py */README.[!elf]?
Answer
6

Question 19

mkdir romance
mkdir germanic
echo 'hello world'      > romance/README.en # english
echo 'hola mundo'       > romance/README.es # spanish
echo 'salve munde'      > romance/README.la # latin
echo 'hallo welt'       > germanic/README.de # german
echo 'hallo wereld'     > germanic/README.nl # dutch
echo 'hej verden'       > germanic/README.da # danish
echo 'hei verden'       > germanic/README.no # norwegian
echo 'ola mundo'        > romance/README.pt # portuguese
echo 'bonjour le monde' > romance/README.fr # french
echo 'saluton mondo'    > romance/README.epo # esperanto
cat romance/* | grep 'o' | wc -l
Answer
5

Question 20

mkdir romance
mkdir germanic
echo 'hello world'      > romance/README.en # english
echo 'hola mundo'       > romance/README.es # spanish
echo 'salve munde'      > romance/README.la # latin
echo 'hallo welt'       > germanic/README.de # german
echo 'hallo wereld'     > germanic/README.nl # dutch
echo 'hej verden'       > germanic/README.da # danish
echo 'hei verden'       > germanic/README.no # norwegian
echo 'ola mundo'        > romance/README.pt # portuguese
echo 'bonjour le monde' > romance/README.fr # french
echo 'saluton mondo'    > romance/README.epo # esperanto
cat romance/* | grep '^o' | wc -l
Answer
1

Question 21

mkdir romance
mkdir germanic
echo 'hello world'      > romance/README.en # english
echo 'hola mundo'       > romance/README.es # spanish
echo 'salve munde'      > romance/README.la # latin
echo 'hallo welt'       > germanic/README.de # german
echo 'hallo wereld'     > germanic/README.nl # dutch
echo 'hej verden'       > germanic/README.da # danish
echo 'hei verden'       > germanic/README.no # norwegian
echo 'ola mundo'        > romance/README.pt # portuguese
echo 'bonjour le monde' > romance/README.fr # french
echo 'saluton mondo'    > romance/README.epo # esperanto
cat romance/* | grep 'o$' | wc -l
Answer
3

Question 22

mkdir romance
mkdir germanic
echo 'hello world'      > romance/README.en # english
echo 'hola mundo'       > romance/README.es # spanish
echo 'salve munde'      > romance/README.la # latin
echo 'hallo welt'       > germanic/README.de # german
echo 'hallo wereld'     > germanic/README.nl # dutch
echo 'hej verden'       > germanic/README.da # danish
echo 'hei verden'       > germanic/README.no # norwegian
echo 'ola mundo'        > romance/README.pt # portuguese
echo 'bonjour le monde' > romance/README.fr # french
echo 'saluton mondo'    > romance/README.epo # esperanto
cat romance/* | grep 'o.*d' | wc -l
Answer
5

Question 23

mkdir romance
mkdir germanic
echo 'hello world'      > romance/README.en # english
echo 'hola mundo'       > romance/README.es # spanish
echo 'salve munde'      > romance/README.la # latin
echo 'hallo welt'       > germanic/README.de # german
echo 'hallo wereld'     > germanic/README.nl # dutch
echo 'hej verden'       > germanic/README.da # danish
echo 'hei verden'       > germanic/README.no # norwegian
echo 'ola mundo'        > romance/README.pt # portuguese
echo 'bonjour le monde' > romance/README.fr # french
echo 'saluton mondo'    > romance/README.epo # esperanto
cat romance/* | grep -E 'hello|salve|hallo' | wc -l
Answer
2

Question 24

mkdir romance
mkdir germanic
echo 'hello world'      > romance/README.en # english
echo 'hola mundo'       > romance/README.es # spanish
echo 'salve munde'      > romance/README.la # latin
echo 'hallo welt'       > germanic/README.de # german
echo 'hallo wereld'     > germanic/README.nl # dutch
echo 'hej verden'       > germanic/README.da # danish
echo 'hei verden'       > germanic/README.no # norwegian
echo 'ola mundo'        > romance/README.pt # portuguese
echo 'bonjour le monde' > romance/README.fr # french
echo 'saluton mondo'    > romance/README.epo # esperanto
cat > example.py <<EOF
import glob
import re
count = 0
for filepath in glob.glob('romance/*'):
    with open(filepath) as f:
        for line in f:
            if re.search(r'o.*d', line):
                count += 1
print(count)
EOF
python example.py
Answer
5

Question 25

mkdir romance
mkdir germanic
echo 'hello world'      > romance/README.en # english
echo 'hola mundo'       > romance/README.es # spanish
echo 'salve munde'      > romance/README.la # latin
echo 'hallo welt'       > germanic/README.de # german
echo 'hallo wereld'     > germanic/README.nl # dutch
echo 'hej verden'       > germanic/README.da # danish
echo 'hei verden'       > germanic/README.no # norwegian
echo 'ola mundo'        > romance/README.pt # portuguese
echo 'bonjour le monde' > romance/README.fr # french
echo 'saluton mondo'    > romance/README.epo # esperanto
cat > example.py <<EOF
import glob
import re
count = 0
for filepath in glob.glob('germanic/*'):
    with open(filepath) as f:
        for line in f:
            if re.search(r'd$', line):
                count += 1
print(count)
EOF
python example.py
Answer
1

Question 26

mkdir romance
mkdir germanic
echo 'hello world'      > romance/README.en # english
echo 'hola mundo'       > romance/README.es # spanish
echo 'salve munde'      > romance/README.la # latin
echo 'hallo welt'       > germanic/README.de # german
echo 'hallo wereld'     > germanic/README.nl # dutch
echo 'hej verden'       > germanic/README.da # danish
echo 'hei verden'       > germanic/README.no # norwegian
echo 'ola mundo'        > romance/README.pt # portuguese
echo 'bonjour le monde' > romance/README.fr # french
echo 'saluton mondo'    > romance/README.epo # esperanto
cat > example.py <<EOF
import glob
import re
count = 0
for filepath in glob.glob('*/*'):
    with open(filepath) as f:
        for line in f:
            if re.search(r'salve|hallo|hello', line):
                count += 1
print(count)
EOF
python example.py
Answer
4