![]() |
Поиск и замена текста
Уважаемые эксперты.
Просьба и помощи в написаниие командного файла: котолрый ищет текст в файле text.txt искомый текст находится в файле 1.txt и заменяет его на текст который находится в файле 2.txt соответственно. Т.е. файлы 1 и 2 одинакового количества строк. Спасибо заранее. |
как-то так:
Код:
@echo off - строки файлов не должны начинаться символом "]" - заменяемые строки (файл 1.txt) не должны содержать символа "=" - замена всегда производится без учета регистра P.S. для русского текста последнее ограничение можно обойти использованием WIN-кодировки исходных файлов |
Запускаю bat'ник и ничего просто висит окно консили и не происходит ничего(.
Убрал до 3 строк 1.txt и 2.txt долго думал и написал "Попытка записи в несуществующий канал" |
ajakzs, примеры файлов в тегах CODE
|
Я так полагаю, данный код работает, но очень медленно(
text.txt Код:
(10,'','_dj_dj_re','f2039552c729323e7b13e895b95a2826'), (10,'','030708_bigmir37','9b7d17dd3c30904db2c209fc6b1532b0'), (10,'','11crickre','d4ceb7cd0cc27696575e3e7ae44edb60'), (10,'','44888888re','3740cada2337d33f26baa111fcec0240'), (10,'','6923521re','eed773f031031cddc0bc98f54fe33a06'), (10,'','9032615979re','5ebb14659eba8883dba2bd418e5dcf98'), (10,'','acidjazz333_5sw','c76663b69f4973b9c59f40f71be3c186'), (10,'','ae07_listsw','b219e5ab86ab19da2dd272fee95f82e2'), (10,'','akira_tmgamersw','61dc1cb715ff9d210dc15a06e717cd24'), (10,'','al19832004_5sw','e4220de586fde5906a150e343f0c29ba'), (10,'','aleks_khusainovre','c22642824ec1e27cc93fc1e6e2f98040'), (10,'-','AleksaN151_4sw','639cad05fcb877efa23fbe217fe48221'), (10,'','aleksec_5sw','c2c70d7b33535b1f835b2829bf9aec6c'), (10,'','aleksey-savre','3dd3e4e51687bd4b1aa681b6db450982'), (10,'','alex3alex3alexre','cd1a332e5e16e4a52943d74d14bd7f79'), (10,'','alexmord_yndexsw','d9b33e0e53575f1393d794c46cff78e9'), (10,'','alfa7308re','18520fd228815cb48b7ae7ffb3a030c6'), (10,'','Alisa-506_5sw','5d6783fe1210b5ca13c9c1f067fb50af'), (10,'','alla054_4sw','1cdcfe85ffd201eede00a3fd4e716e06'), (10,'','andrej_kuz7sovre','e7733b055a4b108ddb78eaebfe3667a0'), Код:
0004b1de7867c5680159aa5814301046 001697f3f07c991396649a75a5504ad8 00307fe544bc6b25c10c9afa85754630 c2c70d7b33535b1f835b2829bf9aec6c 3740cada2337d33f26baa111fcec0240 Код:
stalker 444888 444888 444888 123 321 |
Запустил bat'nik часа два назад он до сих пор идет, и!
вижу темп файл весит 63Кб, а мой text.txt весит 763... т.е. ждать еще невероятно долго? |
Цитата:
10к под переменные окружения это слишком сторонние CMD-утилиты типа SED, AWK и пр. устроют?.. быстрее не бывает |
Я несколько утилит уже попробовал, но не смог осилить) или они не смогли осилить мои команды.
А так конечно устроют = ) |
Если поможете правильно условия копирования\замены подскажете.
=)) |
Цитата:
1. "обнаружилось" еще одно ограничение чистого CMD-метода: длина строки text.txt не должна превышать 1024 символа, иначе скрипт её тупо обрежет... очевидно, предложенный файл не удовлетворяет этому требованию; 2. в первом посте было сказано, что шаблоны замены (1.txt, 2.txt) разделены строками, а в примере - пробелами... это глюк COPY/PASTE или неточность описания задачи? |
Цитата:
Код:
@awk -v T1="1.txt" -v T2="2.txt"^ |
Отличное решение!
|
Ребятки, а каким образом можно заменить SetupSourcePath = "\" на SetupSourcePath = "\XP\"
через утилитку chgstr, не получается лишь потому, что в указанных строках есть ковычки, т.е. при запуске chgstr "SetupSourcePath = "\" "" SetupSourcePath = "\XP\"" "txtsetup.sif", то утилита просто подвисает и это понятно почему. |
Решение проблемы нашел следующим способом:
Код:
findstr /v /c:"SetupSourcePath" txtsetup.sif >>txtsetup1.sif |
Здравствуйте. Пожалуйста, напишите мне, как в файле ChkDistr заменить только одну строку номер 1наВсе остальные строки в файле ChkDistr не трогать. Спасибо.
|
Здравствуйте.
Подскажите, пожалуйста, как сделать просто поиск текста в файле (не слова, а фразы с спец.символами) - если находит, то пишет лог, если нет - ничего не пишет. Везде сложные примеры по замене текста, а мне это не надо, никак не догоню как сделать свою простую задачу :( |
Подскажите пожалуйста, а как можно переделать этот пример кода (в самом низу сообщения) для awk так, чтобы была не построчная замена, а мултилайновая?
В текстовом файле есть текст: Код:
text 001 blablalba Код:
text XXX blablalba Пример кода несколькими постами ранее: Код:
@awk -v T1="1.txt" -v T2="2.txt"^ |
Цитата:
например, пустыми строками, как в указанном примере: Код:
@awk -v RS="" -v T1="1.txt" -v T2="2.txt"^ |
amel27, огромнейшее Вам спасибо! Всё работает!
|
Время: 17:34. |
Время: 17:34.
© OSzone.net 2001-