Симферопольский Форум: bash str_replace - Симферопольский Форум

Перейти к содержимому

Внимание! Для всех новых пользователей введена премодерация сообщений и тем.
Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

bash str_replace

#1 Пользователь офлайн   svip 

  • Программист
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
  • Группа: Команда форума
  • Сообщений: 745
  • Регистрация: 17 Сентябрь 10
  • Сказали спасибо раз:
  • ГородСимферополь

Отправлено 29 Август 2011 - 21:10

нужно открыть файл, заменить в нем паттерн на значение переменной, записать файл.
Есть ли что-то подобное в bash ?

паттерн {name}
переменная $name

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


#2 Пользователь офлайн   Andreios 

  • Kill them all
  • PipPipPipPipPip
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
  • Группа: Старая гвардия
  • Сообщений: 6 371
  • Регистрация: 28 Июль 11
  • Сказали спасибо раз:
  • ГородСимферополь
  • Страна:  

Отправлено 29 Август 2011 - 21:19

В основном на такую ерунду все пишут самостоятельно мини-скрипты.
Используй sed, все это реализуется там одной строкой.
Читаем раз - http://ru.wikipedia.org/wiki/Sed , два - http://www.opennet.r...1line.txt.html.


#3 Пользователь офлайн   Eugene 

  • Юджин
  • PipPipPipPipPip
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
  • Группа: Старая гвардия
  • Сообщений: 1 653
  • Регистрация: 16 Сентябрь 10
  • Сказали спасибо раз:
  • ГородСимферополь

Отправлено 29 Август 2011 - 23:01

sed-ом однозначно

Жизнь - вечная борьба: до обеда с голодом, после обеда со сном.

#4 Пользователь офлайн   Eugene 

  • Юджин
  • PipPipPipPipPip
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
  • Группа: Старая гвардия
  • Сообщений: 1 653
  • Регистрация: 16 Сентябрь 10
  • Сказали спасибо раз:
  • ГородСимферополь

Отправлено 29 Август 2011 - 23:05

кстати до прочтения сообщения
при взгляде на тему вспомнился другой баш

Цитата

C habrahabr, из обсуждения темы "Если бы PHP был британским"

Oleg Yozhic: Совсем другое дело было бы, если бы php был русским, боюсь он не был бы столь вежлив...

mayhem: оптимизация кода будет сводиться к вставлению матерщины перед вызовом функций — «анукаблядь str_replace()» просто обязана отработать быстрее обычной str_replace()

licvidator: Или по крайней мере молчать о внутренних проблемах.

Жизнь - вечная борьба: до обеда с голодом, после обеда со сном.

#5 Пользователь офлайн   Eugene 

  • Юджин
  • PipPipPipPipPip
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
  • Группа: Старая гвардия
  • Сообщений: 1 653
  • Регистрация: 16 Сентябрь 10
  • Сказали спасибо раз:
  • ГородСимферополь

Отправлено 29 Август 2011 - 23:05

http://bash.org.ru/quote/412993
:D

Жизнь - вечная борьба: до обеда с голодом, после обеда со сном.

Поблагодарили: 1

#6 Пользователь офлайн   manny 

  • Живу здесь
  • PipPipPipPipPip
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
  • Группа: Активный участник
  • Сообщений: 839
  • Регистрация: 29 Март 11
  • Сказали спасибо раз:

Отправлено 30 Август 2011 - 06:22

cp file file.bak; sed -i 's/pattern/replacement/g' file

“Любовь к родине не знает чужих границ.”
— Станислав Ежи Лец

#7 Пользователь офлайн   svip 

  • Программист
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
  • Группа: Команда форума
  • Сообщений: 745
  • Регистрация: 17 Сентябрь 10
  • Сказали спасибо раз:
  • ГородСимферополь

Отправлено 30 Август 2011 - 09:56

спасибо. понял.


#8 Пользователь офлайн   Schwein 

  • –· ·– ···· ··– ·––– ··––··
  • Перейти к галерее
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
  • Группа: Модераторы
  • Сообщений: 14 844
  • Регистрация: 15 Сентябрь 10
  • Сказали спасибо раз:

Отправлено 30 Август 2011 - 12:22

Можно и на bash'е:
cat file | while read str ; do echo ${str//substring/replacement} ; done > file2


Но awk/swd/perl — таки лучше, ибо regexp'ы понимают :)


#9 Пользователь офлайн   svip 

  • Программист
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
  • Группа: Команда форума
  • Сообщений: 745
  • Регистрация: 17 Сентябрь 10
  • Сказали спасибо раз:
  • ГородСимферополь

Отправлено 01 Сентябрь 2011 - 08:52

Schwein,
спасибо. именно такой вариант и искал.


Поделиться темой:


Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

1 человек читают эту тему
0 пользователей, 1 гостей, 0 скрытых пользователей