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

Исходное сообщение
"Помогите разработать небольшой скрипт(неско строк)"

Отправлено Martiner , 22-Мрт-07 11:25 
Помогите пожалуйсто написать небольшой скрипт. Никак не получается  

Для заданных файлов (вводятся с клавы) заменить строку с заданным номером (тоже с клавы) на другую строку (тоже с клавы).

Если по простому:
1. Все файлы (имя с клавы).
2. Заменить строку с номером $n (введено с клавы) на другую строку $s (тоже от пользователя).

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


Содержание

Сообщения в этом обсуждении
"Помогите разработать небольшой скрипт(неско строк)"
Отправлено phpcoder , 22-Мрт-07 12:16 
>Помогите пожалуйсто написать небольшой скрипт. Никак не получается

Не получается? А где пример твоих попыток?

Хотел тебе на ЛОРе ответить, а ты уже и тут спросить успел (вообще кроспостить это не есть good). Лови пример:

coder@alt0 ~ $ cat sub.test
one
two
three
four
five
coder@alt0 ~ $ ./sub.sh    
Name of file: sub.test
Number of line: 3
Substitution string: bla bla
coder@alt0 ~ $ cat sub.test
one
two
bla bla
four
five
coder@alt0 ~ $ cat sub.sh
#!/bin/sh

echo -n "Name of file: "
read FILE

echo -n "Number of line: "
read LINE

echo -n "Substitution string: "
read STRING

sed "`printf '%dd' $LINE`" sub.test \
| sed "`printf '%di\%s' $LINE "$STRING"`" >${FILE}.tmp
mv -f ${FILE}.tmp $FILE
coder@alt0 ~ $

Работает, хотя и не очень красиво как-то с двумя sed'ами получилось.


"Помогите разработать небольшой скрипт(неско строк)"
Отправлено Martiner , 22-Мрт-07 12:30 
Огромнейшее спасибо! Это самое красивое, компактное и !понятно! что я видел за последний час!
Попытки были, но они даже не доводились до конца и начинались они с чего-то  похождего на это
fgrep "$str" `find ~/ -name "1*"`>files.txt
дальше не знал как по линиям считать из файла, чтобы потом отсечь все, что после ':' находится вот таким выражением {$templ_str%%:}, затем с помощью sed -e $templ_str {" ... "}
Если синтаксиса не знаешь, то до логики не добираешся((
Ещё раз спасибо!

"Помогите разработать небольшой скрипт(неско строк)"
Отправлено sdio , 22-Мрт-07 14:34 
>Огромнейшее спасибо! Это самое красивое, компактное и !понятно! что я видел за
>последний час!

#!/bin/sh

echo -n "Name of file: ";        read FILE
echo -n "Number of line: ";      read LINE
echo -n "Substitution string: "; read STRING

sed -i "${LINE}c\
$STRING" $FILE


"Помогите разработать небольшой скрипт(неско строк)"
Отправлено phpcoder , 22-Мрт-07 14:58 
>sed -i "${LINE}c\
>$STRING" $FILE

Спасибо за хинт :) Буду знать.