Apr 01, 2017 00:18
Применение критического и системного подхода показали, что ранее
использованное решение не является оптимальным. Что ж, обратно к
анализу задачи.
Основная проблема - обновления ссылок, как имеющихся адресов, так и их
состава. Правильным решением выбирается подсмотр в БД по 2
параметрам - названию фракции и названию отряда. Предполагается, что
названия фракций совпадают, как и большинство названий отрядов -
вокруг этого придётся плясать.
В первую очередь произведём проверку гипотезы:
awk -F\; '{
if (NR < 2)
next
print $2
}' profiles01-01-2017.csv | uniq
Роль утилиты uniq в сокращении повторов, которые не
требуются. Критический осмотр получившегося списка приводит к выводу о
том что схема может сработать.
В таком случае остаётся прибрать за собой, убрав ранее внесённые
записи из файлов. Это производится единственной строкой:
find ./builder/games/wh40k -name '*.py' | xargs sed -i '/AUTO-INSERTED/ d'
Команда find обходит папки в поисках файлов с нужным расширением -
на этот раз обрабатываются все файлы, поэтому grep не
задействован. Имя каждого файла через xargs передаётся в команду
sed для обработки на месте (обеспечено параметром -i). Все
строчки, содержащие AUTO-INSERTED удаляются. Собственно, именно для
этого AUTO-INSERTED и присутствовало в них.
Следует отметить, что при использовании параметра -i и параметра -n
совместно результатом является полная очистка всех 500 с лишним файлов
кода, что привело бы к катастрофе, не будь всё под системой контроля
версий.
find,
awk,
sed,
чёрная магия