URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 7384
[ Назад ]

Исходное сообщение
"Помогите написать shell-процедуру"

Отправлено Александр , 26-Май-08 10:40 
Помогите написать shell-процедуру, которая:
•    вводит передаваемое в качестве 1-го параметра количество символьных строк;
•    в каждой введенной строке ищет подстроку, передаваемую в качестве второго параметра;
•    заменяет каждую найденную подстроку на строку, передаваемую в качестве третьего параметра;
•    выводит на экран каждую введенную строку и соответствующую ей новую строку.

З.ы. Заранее благодарен!


Содержание

Сообщения в этом обсуждении
"Помогите написать shell-процедуру"
Отправлено phpcoder , 26-Май-08 10:45 
>Помогите написать shell-процедуру, которая:

А сам что?

>• вводит передаваемое в качестве 1-го параметра количество символьных строк;

read + цикл

>• в каждой введенной строке ищет подстроку, передаваемую в качестве второго параметра;

grep

>• заменяет каждую найденную подстроку на строку, передаваемую в качестве третьего параметра;

sed/perl/awk

>• выводит на экран каждую введенную строку и соответствующую ей новую строку.

echo/printf


Задание-то элементарное...



"Помогите написать shell-процедуру"
Отправлено Александр , 26-Май-08 11:26 
>[оверквотинг удален]
>>• заменяет каждую найденную подстроку на строку, передаваемую в качестве третьего параметра;
>
>sed/perl/awk
>
>>• выводит на экран каждую введенную строку и соответствующую ей новую строку.
>
>echo/printf
>
>
>Задание-то элементарное...

Почему sed 's/$x/$y/g' myfile неработает ?
$x и $y - переменные в которых храниться искомая и заменяемая подстрока
Если вместо $x и $y подставить константы, то все прекрасно заменяется, но мне то заранее не известны подстроки.


"Помогите написать shell-процедуру"
Отправлено phpcoder , 26-Май-08 11:29 
>Почему sed 's/$x/$y/g' myfile неработает ?

Потому что оболочка не подставляет значения переменных внутри одинарных кавычек. Используйте двойные кавычки.

BTW, это FAQ.