PDA

Показать полную графическую версию : Помогите со скриптом замены в фаиле


rromcic
13-04-2008, 15:01
Стоит такая задача:
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
А если на питоне?

#-*-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()
#запись текста в файл




© OSzone.net 2001-2012