Окончательное рабочее решение:
# Pull in isolated code block for each individual query and write to unique file.
TEMP='temp_file'
while read -r line; do
if [[ $line =~ ^#[[:space:]]Query[[:space:]][0-9].* ]]; then
new_query='1'
((counter++))
echo "$line" > ${TEMP}_${counter}
else
new_query='0'
echo "$line" >> ${TEMP}_${counter}
fi
done < "${LONG_RUNNING_QUERIES}"
# Remove first file, as it only contains query statistics for all long running queries.
rm ${TEMP}_0
# For all files that don't contain the IP, group them together in one file.
QUERIES_TO_GRAB='master_file'
> $QUERIES_TO_GRAB
for i in $(ls -v1 temp_file_*); do
match=$(grep "${IP_ADDY}" "$i")
if [ -z "$match" ]; then
cat $i >> $QUERIES_TO_GRAB
fi
done
Я все еще использовал бы Шиканье. Я не уверен, почему Вы полагаете, что Шиканье было остановлено. Разработка иногда кажется медленной, но существует несколько человек, в настоящее время работающих над исправлениями ошибок, как продемонстрировано этим списком недавно устраненных проблем (ошибки).
Для незнакомых с Шиканьем, это очень похоже на Python, но включает вещи, которые Python не делает (как строковая интерполяция и синтетические макросы). Можно скомпилировать программы Шиканья или использовать Шиканье через "Шиканье Интерактивный Shell" booish.
Между прочим, мне не нравился IronPython также, когда я посмотрел на него пара несколько лет назад. Мне это было похоже на прямой порт Python к CLI, но насколько я мог сказать, что это не включало новые возможности, которых требует типичная разработка.NET.
Править: IronPython, действительно кажется, прогрессировал, так как я сначала посмотрел на него (спасибо за Curt, указывающего на это). Однако я не потрудился смотреть на IronPython снова, так как я нашел Шиканье.
С точки зрения практического удобства использования IronPython будет Вашим лучшим выбором прямо сейчас.
Почему люди предлагают Шиканье? Это - статически типизированный язык, который не является тем, что просит этот вопрос. Да, я знаю, что это имеет дополнительный утиный ввод, но действительно если Связанная с шиканьем информация приемлема для автора вопроса затем, вопрос должен действительно быть отредактирован, чтобы ясно дать понять.
Относительно IronPython Вы сказали, что Вам не нравился он, но действительно нет никакого ответа, который я могу дать критическим комментариям, которые так неопределенны :)
С другой стороны, я предложил бы, чтобы Вы смотрели на cPython. Пара точек:
Вы найдете, что Вам действительно не нужна.NET для большинства вещей. Конечно, это все зависит от Вашего приложения. Поскольку интеграция с существующей.NET кодирует затем, очевидно, необходимо использовать IronPython.
Я соглашаюсь с Вашим чувством, что IronPython кажется неорганизованным, но я использовал его для (маленьких) проектов, и я был довольно доволен им до сих пор.
Если Вы еще не видели его, необходимо проверить IronPython Studio.
Вы говорите, что хотите "динамичный", но если мотивация только для предотвращения "всего этого синтаксического мусора", необходимо взглянуть на F#. Это со статическим контролем типов, но имеет легкое чувство синтаксиса динамического языка, а также интерактивный режим (цикл REPL).
Я снизился на подобный путь. Проверенное Шиканье, dotLISP, IronPython, и т.д.
Я рекомендую IronPython. НО если у Вас уже не будет опыта Python, то затем Вы, вероятно, изучите базовый Python, более быстрый путем загрузки CPython и использования этого для примеров и учебных руководств.
После того как у Вас есть понимание CPython, IronPython будет намного легче понять. Конечно, все еще необходимо понять некоторый C# и иметь доступ к документации.Net SDK. Без него IronPython чрезвычайно трудно получить покончили, полезные вещи.
Можно также смотреть на язык Fan. Это не чисто динамичный, это - смесь обоих статических и динамических. И как большинство более новых языков, это - чистое OO со смесью функциональных в нем. Это также работает и на JVM и на платформе CLR.
Синтаксис, мудрый, это ближе к C# с большим количеством сахарного синтаксиса, таким образом, это отчасти похоже на смесь C# с Ruby/Python.
Так как язык является новым, только 3 года, его производительность еще не является звездной.
Обновление 21 февраля 2014: Вентилятор изменил его имя на Фантом
Take a look at Clojure. The CLR version is still in the early stages, but you could probably get the java version working in .Net via IKVM