Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование в *nix (http://forum.oszone.net/forumdisplay.php?f=35)
-   -   Помогите со скриптом замены в фаиле (http://forum.oszone.net/showthread.php?t=104916)

rromcic 13-04-2008 15:01 780606

Помогите со скриптом замены в фаиле
 
Стоит такая задача:
1) Поиск в фаиле и коментирование строки где наидено ключевое слово (то есть замена на ету же строку с #)
2) поиск по ключевому слову и замена строки которая на 2 строки ниже наиденнои на определенныи текст.

[account]
User = user02
Pwd = drttyy
Group = 1
NumUsers = 1

1) Наити строку где "user02" и заменить на "#User = user02"
2) Наити строку где "user02" и заменить на 2 строки ниже наиденнои "Group = 1" на "Group = 2"

Перепробовал и sed и grep ну не получается и все :(

Первую задачу решил:
cat userfile | sed -e "s/User = $1/#User = $1/g" > userfile

a 2 еше нет

QZip 08-07-2008 23:05 846276

А если на питоне?
Код:

#-*-coding:utf-8-*-
#задаем кодировку - юникод
fname="input.txt"
pattern="Group = 2"
kword="user02"
#входные данные
f=open(fname,"r")
txt=f.read()
f.close()
#читаем текст из файла
txt=txt.split("\n")[:-1]
#разбиваем в массив построчно
i=0
while i<len(txt):
        if txt[i].find(kword)!=-1:
                txt[i]="#"+txt[i]
                txt[i+2]=pattern
        i=i+1
#поиск ключевого слова и проделка требуемых действий
result=""
i=0
while i<len(txt):
        result=result+txt[i]+"\n"
        i=i+1
#сцепление строк в один текст
f=open(fname,"w")
f.write(result)
f.close()
#запись текста в файл



Время: 20:59.

Время: 20:59.
© OSzone.net 2001-