Начало работы с IronRuby на [закрытых] направляющих

Нет необходимости делать это так, просто awk читает два файла, это нормально:

awk -F, 'NR==FNR{a[$1]++;next;}a[$1]{$5="Y"}1' file1.csv file2.csv

Не уверены, что заголовок и вторая строка - это ваш способ объяснения, если вы хотите избавиться от них :

awk -F, 'NR==FNR{a[$1]++;next;}a[$1]{$5="Y"}FNR>2' file1.csv file2.csv

Обратите внимание, что если file1.csv может быть пустым, вы должны изменить NR==FNR на другие методы проверки файлов, такие как ARGIND==1 для GNU awk, или FILENAME=="file1.csv" и т. Д.

[1139 ] Если имеется огромное количество данных для работы, изменение a[$1]++ на a[$1]=1 немного улучшит скорость.
Также, если вы хотите сохранить заголовок (или 2-ю строку), то лучше начинать изменять массив a, когда FNR>1 или FNR>2. Усовершенствуйте команду самостоятельно, я уверен, что вы поняли;)

NR==FNR означает первый файл, потому что NR означает N число от R записей теперь FNR означает текущий F иле N номер R экордов.
a - это массив для сохранения $1 в качестве ключей.
next пропустить выполнение другого блока.

Когда NR==FNR равно false, это означает, что это не первый файл, первый блок не будет выполнен.
(Вы также можете использовать NR>FNR перед блоком, чтобы указать его, но так как я использовал next в блоке NR==FNR, так что в этом нет необходимости.)
Затем запускаются другие директивы, a[$1] заключается в том, чтобы судить, существует ли ключ в массиве a или нет (если обратиться к значению, буквально проверьте, что key exists фактически должно быть $1 in a), если он существует, то измените $ 5.
Последний 1 должен указывать истинное значение, это сокращение для {print}.
(Поскольку выражение без блока подразумевает {print}, и блок выполняется, когда вышеприведенное выражение рассчитывается как true, для которого 1 всегда верно.)

10
задан GuyBehindtheGuy 22 December 2008 в 18:24
поделиться

4 ответа

Похоже, что наконец-то есть:

http://www.ironruby.net/Documentation/Rails

9
ответ дан 3 December 2019 в 14:44
поделиться

Сегодня IronRuby уже 'выполняет' направляющие. Мы demo'd это рабочие направляющие назад в RailsConf 08. Тем не менее у нас есть большая работа качества сборки и отделки, чтобы сделать на IronRuby для получения его к состоянию, куда это может выполнить направляющие хорошо.

Где нам недостает, прямо сейчас:

  • Скорость запуска - это очень важно для достойного опыта при работе с направляющими - особенно при выполнении модульных тестов. Прямо сейчас это берет 26 для запущения направляющих.
  • Рабочий набор - мы в настоящее время на уровне 100 МБ для 'привет мирового' приложения для направляющих по сравнению с 30 МБ для МРТ.
  • Мы на самом деле делаем прекрасный на пропускной способности - после того как мы - скомпилированные вещи, выполненные обоснованно хорошо.

    Мы двигаем адаптивную стратегию компиляции, где мы интерпретируем по умолчанию и компилируем горячие точки, которые мы находим. Это заставит разработчика испытать намного лучше. Мы будем также иметь заранее режим компиляции (возможно, в сочетании с NGEN и интеллектуальным кэшированием) в будущем, который может быть лучше, чем адаптивная стратегия компиляции.

    20
    ответ дан 3 December 2019 в 14:44
    поделиться

    Извините, что разочаровал, но я думаю, что необходимо будет записать учебное руководство сами. Если я не пропустил что-то, IronRuby еще не выполняет направляющие, хотя они продемонстрировали некоторое выполнение аспектов.

    Согласно домашней странице IronRuby они приблизительно в 71%, завершенном на пакете ядра RubySpecs, который является, вероятно, все еще некоторым путем от достаточно для движения от rails <projectName прямо до ironruby script/server

    Когда IR выполняет направляющие, я думаю, что мы можем услышать об этом. Или скорее нам, вероятно, придется закрыть нас в камерах изоляции, чтобы не слышать об этом...

    2
    ответ дан 3 December 2019 в 14:44
    поделиться

    Вот несколько хорошие "пошаговые" для новичков: http://www.ironruby.net/Samples_and_tutorials

    1
    ответ дан 3 December 2019 в 14:44
    поделиться
    Другие вопросы по тегам:

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