管理人Kのひとりごと

デジモノレビューやプログラミングや写真など

正規表現を使って特定の範囲の数値を含むファイル名を絞り込む

掲題のようなことがあったので備忘。正規表現検索にはegrepを使用。

やりたいこと、やったこと

ファイル名に連番を含むファイル群から、特定の範囲の数値を含む(001~020)ファイル名のみを絞り込みたい。

# test_001~test_030.txtのファイルを作成
hoge@localhost:~/regx_text $ touch test_{001..030}.txt
hoge@localhost:~/regx_text $ ls -al
合計 8
drwxr-xr-x  2 pi pi 4096  616 22:49 .
drwxr-xr-x 44 pi pi 4096  616 22:48 ..
-rw-r--r--  1 pi pi    0  616 22:49 test_001.txt
-rw-r--r--  1 pi pi    0  616 22:49 test_002.txt
...(中略)
-rw-r--r--  1 pi pi    0  616 22:49 test_029.txt
-rw-r--r--  1 pi pi    0  616 22:49 test_030.txt

# test_001~test_020.txt のみ絞り込み
hoge@localhost:~/regx_text $ ls | egrep test_0'0[1-9]|1[0-9]|2[0]'.txt
# 000~019であれば、test_0'[0-1][0-9]'.txtとすればよかったが、001始まりにつき、2桁目ごとに場合分けした
test_001.txt
test_002.txt
...(中略)
test_019.txt
test_020.txt

# 本当に20件か確認
hoge@localhost:~/regx_text $ ls | egrep test_0'0[1-9]|1[0-9]|2[0]'.txt | wc -l
20