Мне нужна помощь, пытаясь найти эффективный способ разобрать путь к файлу большого количества небольших файлов stdout и создать из них файлы .csv.Эффективно Разбор большого количества файлов
Пример: найти $ PWD -name стандартный вывод
/корень/размер/6/цвет/красный/стандартный вывод
/корень/размер/3/цвет/зеленый/стандартный вывод
Запуск этого скрипт создаст
6-red.csv
3-green.csv
Этот цикл работает на тысячах файлов, и я стараюсь, чтобы убедиться, что это правильное решение.
Любое направление было бы очень полезно. Спасибо!
dirfiles=($(find $PWD -name stdout))
for outfile in "${dirfiles[@]}"
do
thisResult=$(cat $outfile)
IFS='/' read -a params <<< "$outfile"
for index in "${!params[@]}"
do
param=${params[index]}
if [ "$param" = "size" ]; then
size=${params[index+1]}
fi
if [ "$param" = "color"]; then
color=${params[index+1]}
fi
done
echo $thisResult 1>>outputCSV/${size}-{color}.csv
done
Является ли это работает? Вопрос в том, можно ли повысить эффективность? Вы ищете приемлемые для оболочки решения или другие инструменты (например, 'awk',' perl' и т. Д.)? Имеет ли значение, что это не безопасно для каталогов с пространством в именах? –
Не могли бы вы быть более конкретными относительно ваших входных и выходных форматов? –
Да, это работает, но требуется очень много времени для обработки через растущий набор данных. Я ищу наиболее эффективный метод, будь то использование оболочки или других инструментов. (и т. д., perl, python, awk). – jfran