Упрощенно, в bash (или оболочках, поддерживающих массивы:
files=(???_???_???)
Здесь используется подстановочный символ ?
для подбора файлов с именами, как вы показали, с 3 символами, подчеркиванием, 3 символами, подчеркиванием, затем 3 символами. Это может быть сорвано, если у вас есть имя файла, такое как xyz_qrs_t.1
.
Чуть более изысканным было бы:
files=([^._][^._][^._]_[^._][^._][^._]_[^._][^._][^._])
... который использует синтаксис[^... ]
подстановки . Каждый [^._]
запрашивает один символ, который не является точкой или символом подчеркивания. Смешаны два символа подчеркивания, разделяющие три партии по три [^._]
.
Прокрутите их с помощью:
for f in "${files[@]}"; do printf "File: %s\n" "$f"; done