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 -lAnswer
3
Question 2
echo 'hello world' > README.md
echo 'hola mundo' > README.txt
echo 'salve munde' > README
ls *.txt | wc -lAnswer
1
Question 3
echo 'hello world' > README.md
echo 'hola mundo' > README.txt
echo 'salve munde' > README
cat *.* | wc -lAnswer
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 -lAnswer
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 -lAnswer
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 -lAnswer
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 -lAnswer
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 -lAnswer
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 -lAnswer
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 -lAnswer
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 -lAnswer
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 -lAnswer
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.pyAnswer
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.pyAnswer
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.pyAnswer
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 -lAnswer
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 -lAnswer
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 -lAnswer
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 -lAnswer
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 -lAnswer
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.pyAnswer
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.pyAnswer
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.pyAnswer
4