Модераторы: powerfox, ZeeLax
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Замена символов в определенной строке, с помощью какого средства сделать 
:(
    Опции темы
bartram
  Дата 1.7.2011, 17:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1606
Регистрация: 22.2.2004
Где: Russia, Samara

Репутация: нет
Всего: 29



Есть несколько конфигурационных файлов с определенной структурой данных, необходимо в этих файлах  найти все строки со словом options и заменить конкретно в этой строках, все запятые на символ "|". C мопощью какого средства можно сделать это быстро? Подскажите в какую сторону копать.


--------------------
В каждом из нас спит гений, но с каждым днем все крепче ;-)
bartram.ru
Twitter
user posted image 

PM MAIL ICQ   Вверх
triclosan
Дата 1.7.2011, 18:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 515
Регистрация: 18.8.2006

Репутация: 2
Всего: 12



vim
Код

:g/options/s/,/|/g


Это сообщение отредактировал(а) triclosan - 1.7.2011, 18:22
PM MAIL   Вверх
triclosan
Дата 1.7.2011, 18:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 515
Регистрация: 18.8.2006

Репутация: 2
Всего: 12



предыдущий пост - с подстрокой "options"

со словом - 

Код

:g/\<options\>/s/,/|/g

PM MAIL   Вверх
bartram
Дата 1.7.2011, 18:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1606
Регистрация: 22.2.2004
Где: Russia, Samara

Репутация: нет
Всего: 29



triclosan, работать будет только в Vim?  А нельзя более универсальными инструментами,  типа sed  и awk, чтобы можно было использовать в bash  скрипте? Но за решение все равно спасибо!


--------------------
В каждом из нас спит гений, но с каждым днем все крепче ;-)
bartram.ru
Twitter
user posted image 

PM MAIL ICQ   Вверх
triclosan
Дата 1.7.2011, 19:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 515
Регистрация: 18.8.2006

Репутация: 2
Всего: 12



так можно в vim автоматизировать, только
Код

:g/\<options\>/s/,/|/ge


Добавлено через 6 минут и 23 секунды
sed:
Код

sed '/\<options\>/s/,/|/g'  text.txt

PM MAIL   Вверх
afiskon
Дата 2.7.2011, 11:11 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 294
Регистрация: 31.3.2011
Где: Россия, Москва

Репутация: 1
Всего: 4



cat file.txt | perl -e 'while(my $line = <>){ if($line =~ /options/ ){ $line =~ s#|#,#g; }  print $line; }'
PM MAIL WWW   Вверх
bartram
Дата 2.7.2011, 11:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1606
Регистрация: 22.2.2004
Где: Russia, Samara

Репутация: нет
Всего: 29



triclosan, afiskon, спасибо за помощь ребята, вечером проверю ваши способы smile А пока вам + 


--------------------
В каждом из нас спит гений, но с каждым днем все крепче ;-)
bartram.ru
Twitter
user posted image 

PM MAIL ICQ   Вверх
bartram
Дата 6.9.2011, 18:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1606
Регистрация: 22.2.2004
Где: Russia, Samara

Репутация: нет
Всего: 29



afiskon, твой вариант не работает, почему-то это команда после каждой буквы в строке вставляет запятую, почему не знаю.

triclosan, вариант с sed, не работает, команда решительно ничего не меняет в документе :((

Добавлено через 10 минут и 26 секунд
На всякий случай пример конфига
Код

{
"common" : {
  "name" : "Имя",
  "options" : "param1=name/_text_,param2|param3=value",
  "inputs" : {
    "0" : "param3=value1",
    "1" : "param3=value2"
  }
},

Мне нужно чтобы в подстроке options  все запятые заменялись на |
Помогите люди добрые! smile



--------------------
В каждом из нас спит гений, но с каждым днем все крепче ;-)
bartram.ru
Twitter
user posted image 

PM MAIL ICQ   Вверх
rodnover
Дата 6.9.2011, 18:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 223
Регистрация: 7.4.2009

Репутация: нет
Всего: 10



Код

sed -i '/\<options\>/s/,/|/g'  text.txt

ключик -i добавь.
PM MAIL   Вверх
bartram
Дата 6.9.2011, 18:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1606
Регистрация: 22.2.2004
Где: Russia, Samara

Репутация: нет
Всего: 29



rodnover, 
Код

sed: -i may not be used with stdin



--------------------
В каждом из нас спит гений, но с каждым днем все крепче ;-)
bartram.ru
Twitter
user posted image 

PM MAIL ICQ   Вверх
rodnover
Дата 6.9.2011, 19:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 223
Регистрация: 7.4.2009

Репутация: нет
Всего: 10



у меня (под убунтой) так работает.. тогда так:

Код

sed -i -e '/\<options\>/s/,/|/g'  text.txt


PM MAIL   Вверх
Vaulter
Дата 6.9.2011, 21:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1724
Регистрация: 30.12.2002
Где: бункер

Репутация: 3
Всего: 22



а почему все советуют искать "<options>" когда речь шла об "options"?
Код

sed '/options/ s_,_|_' text.txt


Это сообщение отредактировал(а) Vaulter - 6.9.2011, 21:02


--------------------
PM MAIL WWW ICQ   Вверх
bartram
Дата 6.9.2011, 22:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1606
Регистрация: 22.2.2004
Где: Russia, Samara

Репутация: нет
Всего: 29



Vaulter, твой вариант работает, только странно что последнюю запятую в конце строки пропускает smile Не знаешь с чем это может быть связано?


--------------------
В каждом из нас спит гений, но с каждым днем все крепче ;-)
bartram.ru
Twitter
user posted image 

PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Linux/UNIX: Oбщие вопросы"
nickless
Imple
nerezus

В тему здесь вопросы общие - не привязанные к определенному ПО или дистрибутиву BSD/Linux/UNIX.
Например вопросы о выборе ОС для определенных задач (но если Вы просто хотите узнать "Какой дистрибутив лучше", то для этого есть Клуб юнуксоидов).
Общие вопросы по shell-программированию тоже лучше задавать здесь.


  • Вопросы мобильной разработки тут
  • Вы должны соблюдать правила форума.
  • Помните: какой вопрос, такой и ответ. Прежде чем задать вопрос прочитайте вот эту статью на форуме CIT.
  • Оскорблять запрещается.
  • Религиозные войны в Религиозных войнах.
  • Общение "просто так" в Клубе юнуксоидов. В отличие от многих других разделов, здесь разрешается сдержанно оффтопить и юморить в тему.

За интересные статьи, находки, решения, программы и просто реальную помощь будут ставиться + в репу).


В данный момент этот раздел модерируют nerezus, nickless, powerfox, pythonwin, Imple и ZeeLax. Если вы хотите помочь нам, пишите в ПМ и мы обсудим.


Спасибо. И use UNIX or die; С уважением, nerezus, nickless, powerfox, pythonwin, Imple, ZeeLax.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | *NIX системы: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1162 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.