ls data/*.md
# data/README.mdWildcards
Wildcards (or glob patterns) can be used with commands to match filenames, paths, or filter text (ls, cp, mv, rm, etc.). The shell expands arguments and wildcards into a list of files or directories that match the pattern.
Asterisk: *
* is a wildcard for matching zero or more characters.
Example
List all files in the data/ directory that end with .md:
Example
List all top-level files starting with w and ending in .tsv in data/
ls data/w*.tsv
# data/wu_tang.tsvExample
Print the top ten lines of the pwrds .csv file in data/raw/ via *:
head data/raw/p*.csv
# password,rank,strength,online_crack
# password,1,8,6.91 years
# 123456,2,4,18.52 minutes
# 12345678,3,4,1.29 days
# 1234,4,4,11.11 seconds
# qwerty,5,8,3.72 days
# 12345,6,4,1.85 minutes
# dragon,7,8,3.72 days
# baseball,8,4,6.91 years
# football,9,7,6.91 yearsQuestion Mark: ?
? is the wildcard for matching exactly one character.
Example
ls myfile?.txt lists files like myfile2.txt, but not myfile.txt and my file 3.txt:
ls myfile?.txt
# myfile2.txtExample
List five-character names indata/raw/ ending with .csv:
ls data/raw/?????.csv
# data/raw/pwrds.csv
# data/raw/trees.csvExample
List any four-character names indata/raw/ ending with s.csv:
ls data/raw/????s.csv
# data/raw/pwrds.csv
# data/raw/trees.csvSquare brackets: []
[abc]: Matches any one character listed (a, b, or c).
Example
[a-z]: match the top-level TSV files starting with m, p, or t in data/:
ls data/[mpt]*.tsv
# data/music_vids.tsv
# data/pwrds.tsv
# data/trees.tsvExample
Matches files beginning with p or t and ending in .tsv in data/:
ls data/[pt]*.tsv
# data/pwrds.tsv
# data/trees.tsvExample
Matches ajperlis_epigrams.txt (but excludesroxanne.txt) in data/raw/:
ls data/raw/[!r]*.txt
# data/raw/ajperlis_epigrams.txtExample
Match any one character in range (a to p).
ls data/[a-p]*
# data/music_vids.tsv
# data/pwrds.tsvIn the next section we’ll cover how to use special characters to enhance matching and searching text with tools like grep, cat, head, awk. etc.