Вы можете использовать подстановку процесса и grep -f для поиска только файлов в пределах диапазона.
. Для подсчета всех файлов с именем file _[0 -9]+.txt в диапазоне от 10 до 20:
start=10
end=20
ls -f1 | grep -F -f <(printf "file_%s.txt\n" $(seq ${start} ${end}))|wc -l
Я обычно использую csvtool
для работы с файлами CSV -в сценариях bash -.
что-то вроде этого:
csvtool namedcol server,alias,cn,san,environment input.csv \
| csvtool -u TAB drop 1 - \
| while IFS=$'\t' read -r server alias cn san environment; do
echo "server: ${server}"
echo "alias: ${alias}"
echo "cn: ${cn}"
echo "san: ${san}"
echo "environment: ${environment}"
# do something with it...
keytool -genkey -alias "${alias}" -keyalg RSA -keysize 2048
done
первый вызов csvtool
выводит столбцы в файле CSV в соответствии с их именами, на случай, если порядок столбцов не фиксирован.
2-й вызов избавляется от заголовков CSV -и выполняет некоторые изменения разделителей (, используя «\t» вместо ,
, на тот случай, если ваши входные данные могут содержать запятые, но не табуляции.
затем мы используем тот же разделитель в вызове read
с помощью IFS
envvar; и используйте read
для присвоения значений именам переменных.