Использование файла CSV с Bash

Вы можете использовать подстановку процесса и 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
-1
30.11.2020, 23:33
1 ответ

Я обычно использую 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с помощью IFSenvvar; и используйте readдля присвоения значений именам переменных.

1
18.03.2021, 22:46

Теги

Похожие вопросы