Более подробный:

У меня есть папка с данными для игры, код которой чистый текст и настраиваемый (MUGEN). Помимо всего прочего, файл * .cns каждого символа содержит следующую строку текста:

;def file for char
Life = 2334 (could be any number from 100 to 99999) ;default value is 1000
Attack = 123 (could be any number from 1 to 99999) ; 100
Defence = 157 (could be any number from 1 to 99999) ; 100

Но вместо значения по умолчанию, установленного для их значения в качестве стандартного (Life = 1000, Attack = 100, Defense = 100), они совершенно не сбалансированы, так как загрузчик этой игры беспорядочно (случайно) меняет свое значение своими странными ссылками. Теперь моя проблема в том, что я хочу сбросить все их значения до значения по умолчанию, не проходя весь файл * .cns (сотни, может, больше) и редактировать эти строки самостоятельно. Как я могу сделать это эффективно?

Я хочу что-то вроде, Поиск по всему содержимому файла * .cns в папке и обнаружить строку, которая включает * "Life = *" "Attack = *" и "Defense = " (без учета регистра) и заменить их на "Life = 1000 "," Attack = 100 "... и так далее, не обращая внимания на определенное число, кроме" = ") И максимально автоматически.

Я немного погуглил и подумал, может быть, какой-нибудь метод регулярных выражений найти и заменить в каком-то продвинутом текстовом редакторе может помочь, но я не совсем понял ... Может кто-нибудь помочь и объяснить мне шаг за шагом, как это сделать? Спасибо.

1 ответ1

1

В Linux (или в Windows, используя Cygwin) вы можете использовать

find . -name '*.cns' 

найти все файлы с расширением .cns в текущем каталоге.

Вы можете использовать "sed" для редактирования файлов "inline"

find . -name '*.cns' -exec \
sed -i~ 's/Life.*/Life = 1000/g;s/Attack.*/Attack = 100/g;s/Defence.*/Defence = 100/g' "{}" \;

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .