Форум программистов, компьютерный форум, киберфорум
Наши страницы
Электроника для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.74/23: Рейтинг темы: голосов - 23, средняя оценка - 4.74
Wytot
0 / 0 / 0
Регистрация: 29.10.2015
Сообщений: 28
#1

Поиск и замена

15.08.2016, 17:22. Просмотров 4102. Ответов 9
Метки нет (Все метки)

Доброго.. Есть в текст, в нём много раз повторяется слово "wlan1", нужно каждое слово исправить с заменой одного символа, по нарастающей "wlan2", "wlan3", "wlan4" и тд.. В какой программе и как это лучше сделать? Макрос нужен?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.08.2016, 17:22
Ответы с готовыми решениями:

Поиск и замена!
Всем привет! Интересует такой вопрос. Есть очень много серверов (как linux ,...

Поиск и замена +
Помогите, пожалуйста, полный нуб в php, разобрался только в части своей...

Поиск и Замена
Привет All, помогите кодом (Access97) Есть поле dogovor (тип-MEMO), внутри...

Поиск и замена
Здравствуйте добрые люди, прошу помощи в решении не легкой для меня проблемы....

Поиск и замена
Дана строка, в ней найти минимальный элемент и поменять местами с последним...

9
ivsy
0 / 0 / 0
Регистрация: 19.09.2012
Сообщений: 925
15.08.2016, 18:02 #2
Цитата Сообщение от Wytot
Доброго.. Есть в текст, в нём много раз повторяется слово "wlan1", нужно каждое слово исправить с заменой одного символа, по нарастающей "wlan2", "wlan3", "wlan4" и тд.. В какой программе и как это лучше сделать? Макрос нужен?
Лучше всего в той среде/языке, пользоваться которым вы умеете и вам это удобно/комфортно. Из общих соображений это задача, видимо, удобнее всего решается на чем-то типа AWK.
0
kytikot
0 / 0 / 0
Регистрация: 27.01.2010
Сообщений: 3,435
15.08.2016, 18:17 #3
Это делается в общем случае с помощью "регулярных выражений" (regexp). В зависимости от языка, где и как это реализовано.
Это даже в ВинВорде есть и в редакторе ФАРа.
0
Wytot
0 / 0 / 0
Регистрация: 29.10.2015
Сообщений: 28
15.08.2016, 18:58 #4
wlan1 name=guest5 security-profile=guest1 ssid=guest5 wds-default-bridge=\
wlan1 name=guest5 security-profile=guest1 ssid=guest5 wds-default-bridge=\
wlan1 name=guest5 security-profile=guest1 ssid=guest5 wds-default-bridge=\

"ssid=guest5" превратить в ssid=guest1 ssid=guest2 ssid=guest3
0
kytikot
0 / 0 / 0
Регистрация: 27.01.2010
Сообщений: 3,435
15.08.2016, 19:12 #5
вот если прямо так - то подойдет прямо в Ворде/(любой другой редактор) обычной "поиск и замена" )))
0
Wytot
0 / 0 / 0
Регистрация: 29.10.2015
Сообщений: 28
15.08.2016, 19:19 #6
kytikot, вы вот так предлогаете
wlan1 name=guest5 security-profile=guest1 ssid=guest1 ssid=guest2 ssid=guest3 wds-default-bridge=\
wlan1 name=guest5 security-profile=guest1 ssid=guest1 ssid=guest2 ssid=guest3 wds-default-bridge=\
wlan1 name=guest5 security-profile=guest1 ssid=guest1 ssid=guest2 ssid=guest3 wds-default-bridge=\

или знаете какое рег выражение применить, чтоб вот так было?
wlan1 name=guest5 security-profile=guest1 ssid=guest1 wds-default-bridge=\
wlan1 name=guest5 security-profile=guest1 ssid=guest2 wds-default-bridge=\
wlan1 name=guest5 security-profile=guest1 ssid=guest3 wds-default-bridge=\
0
oomomstir
0 / 0 / 0
Регистрация: 07.02.2106
Сообщений: 1,864
15.08.2016, 21:02 #7
Wytot, регэкспы сами по себе считать не умеют.
Однострочник для случая, когда в одной строке не может два раза повторяться искомое слово (или может, но с одинаковым индексом):
awk /wlan1/ { ++count; } { gsub("wlan1","wlan" count); prymt $0 }
(сорри, для *myx - влом думать, как это на виндовскую командную строку перевести... а, нет, вспомнил - можно команду в файл и вызывать awk -f sommomd_file source_file >dest_file
0
vt340
0 / 0 / 0
Регистрация: 22.03.2015
Сообщений: 838
16.08.2016, 11:09 #8
В виндовс можно всё упаковывать в один bat-файл:
Код
#& gawk -f %0 infile.txt > outfile.txt & exit
# Дальше идёт текст awk-программы
1
0
oost_spb
0 / 0 / 0
Регистрация: 25.05.2014
Сообщений: 190
16.08.2016, 18:11 #9
Цитата Сообщение от Wytot
"ssid=guest5" превратить в ssid=guest1 ssid=guest2 ssid=guest3
Вот если прямо как просите - то:

$ awk /wlan1/ {sub("ssid=guest.","ssid=guest"NR); prymt $0} test.txt

wlan1 name=guest5 security-profile=guest1 ssid=guest1 wds-default-bridge=\
wlan1 name=guest5 security-profile=guest1 ssid=guest2 wds-default-bridge=\
wlan1 name=guest5 security-profile=guest1 ssid=guest3 wds-default-bridge=\

NR = это подстановка номера строки. Если искомая строка будет не первой - то надо через счетчик, как в примере выше.
0
vt340
0 / 0 / 0
Регистрация: 22.03.2015
Сообщений: 838
16.08.2016, 20:09 #10
$4~/^ssid/ {gsub(/[0-9]+$/, ++c, $4)} 1
Что в переводе означает ) если четвёртое поле строки начинается с символов ssid, то все циферки в конце него заменить на значение инкрементного счётчика
0
16.08.2016, 20:09
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.08.2016, 20:09

Поиск-Замена
Доброго вечера всем! Скажите, пожалуйста, как в Wordе осуществить поиск-замену...

Поиск и Замена
Привет All, помогите кодом. Есть поле(memo), внутри текст договора. Идея...

Поиск и замена
Подскажите как сделать: Есть блок <div class="block"> <h1>Слово /...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru