Например, выберите файлы с номерами от «file.00001» до «file.00431» - PullRequest
0 голосов
/ 22 мая 2019

Я бы хотел выбрать файлы с именем вроде: "file.xxxxx".Каждый x может идти от 0 до 9. Например, я использовал этот фрагмент кода для файлов file.0000x

#!/bin/bash

for i in {1..9}
 do [...] file.0000${i} > tmp.0000${i}
 done

Я бы знал, что делать, если файлы назывались file.x с x из0 ни к чему.Я думал об использовании 5 переменных i, j, k, l, m, соответствующих пяти «х» ([0-9]), но это не сработало, и я не уверен, что это правильный путь.Какие-нибудь советы ?Спасибо!

Ответы [ 2 ]

1 голос
/ 22 мая 2019

, если вы хотите работать только с существующими файлами, лучше использовать regex globbing.

for f in file.[0-9][0-9][0-9][0-9][0-9] ...

и напрямую работать с именем файла f.

С другой стороны, расширение скобки создаст все возможные комбинации.

0 голосов
/ 22 мая 2019

Используйте printf "%05d" "$num", чтобы напечатать число, заполненное 5 начальными нулями.

Пример:

for i in {1..9}; do 
   file1=$(printf "file.%05d" "$i")
   file2=$(printf "tmp.%05d" "$i")
   : ... "$file1" > "$file2"
done
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...