powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Shell + регулярные выражения.
9 сообщений из 9, страница 1 из 1
Shell + регулярные выражения.
    #36023587
Marauder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не могу понять, как сделать следующее:
есть переменная $var1
надо в ней поменять одни символы на другие и записать в $var2

Нашёл вот это:
Код: plaintext
1.
2.
3.
4.
s/old/new/    Заменить первую old на new в текущей строке
s/old/new/p   Заменить первую old на new и печатать строку
s/old/new/g   Заменить каждую old на new в текущей строке
s/old/new/gp  Заменить каждую old на new и печатать строку
Вроде то что надо, только не могу понять как подать нужную переменную в качестве входящего параметра.
...
Рейтинг: 0 / 0
Shell + регулярные выражения.
    #36023671
StasL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Marauder,
Не совсем понятно что вы хотите сделать. Приведите пример var1 и var2. Может чем и помогу.
...
Рейтинг: 0 / 0
Shell + регулярные выражения.
    #36023674
Marauder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да всё просто
$var1 =12345
надо '2' заменить на 'a'
т.в. в итоге $var2 = 1a345
...
Рейтинг: 0 / 0
Shell + регулярные выражения.
    #36023678
Marauder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MarauderДа всё просто
$var1 =12345
надо '2' заменить на 'a'
т.в. в итоге $var2 = 1a345
лучше даже
$var1 = 12345
заменить '234' на 'аb'
в итоге $var2 = 1ab5
...
Рейтинг: 0 / 0
Shell + регулярные выражения.
    #36023701
StasL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MarauderMarauderДа всё просто
$var1 =12345
надо '2' заменить на 'a'
т.в. в итоге $var2 = 1a345
лучше даже
$var1 = 12345
заменить '234' на 'аb'
в итоге $var2 = 1ab5

Код: plaintext
1.
2.
3.
4.
5.
#!/bin/sh                                                                                                                           
                                                                                                                                    
var1='12345'                                                                                                                        
echo $var1                                                                                                                          
var2=${var1/'234'/'ab'}                                                                                                             
echo $var2
...
Рейтинг: 0 / 0
Shell + регулярные выражения.
    #36023714
Marauder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
в файле script следующее:

var1='12345'                                                                                                                        
echo $var1                                                                                                                          
var2=${var1/'234'/'ab'}
echo $var2

получаю на выходе
$ sh script
 12345 
script:  3 : Syntax error: Bad substitution
...
Рейтинг: 0 / 0
Shell + регулярные выражения.
    #36023839
StasL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Marauder
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
в файле script следующее:

var1='12345'                                                                                                                        
echo $var1                                                                                                                          
var2=${var1/'234'/'ab'}
echo $var2

получаю на выходе
$ sh script
 12345 
script:  3 : Syntax error: Bad substitution


А вот так
Код: plaintext
1.
2.
3.
4.
var1='12345'                                                                                                                        
echo $var1                                                                                                                          
var2=`expr ${var1/'234'/'ab'}`
echo $var2
Да, у меня REHL5 и работают оба варианта
...
Рейтинг: 0 / 0
Shell + регулярные выражения.
    #36024363
c guy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
зато сед не зависит от версии шелла:

Код: plaintext
1.
  var2=`echo $var1 | sed 's/old/new/g'`
...
Рейтинг: 0 / 0
Shell + регулярные выражения.
    #36024794
Marauder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за помощь.
До варианта
Код: plaintext
var2=`echo $var1 | sed 's/old/new/g'`
сам дошёл :)
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Shell + регулярные выражения.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]