![]() |
Hej och välkommen från USA till UNIX och Linux Forum! Tack för ditt besök och gå med i vår globala gemenskapen.
|
|
google unix.com
|
|||||||
| Forum | Registrera | Forum Regler | Länkar | Album | FAQ | Medlemslista | Kalender | Söka | Dagens inlägg | Markera forum som lästa |
| Shell-programmering och Skript Post frågor om ksh, CSH, SH, bash, PERL, PHP, sed, awk och andra skalskript och skal skriptspråk här. |
Mer UNIX och Linux Forum Ämnen Du kan hitta Helpful
|
||||
| Tråd | Thread Starter | Forum | Svar | Senaste Inlägg |
| Sök ersätta strängen i fil1 med string från (uppslagstabell) fil2? | gstuart | Shell-programmering och Skript | 9 | 06-08-2009 06:11 |
| Sök excat snöre i en annan sträng (grep "inte") | bora99 | UNIX for Dummies Frågor & Svar | 0 | 06-05-2008 06:41 |
| sökadressen textsträng | itik | AIX | 2 | 01-28-2008 07:01 |
| Perl: Sök efter strängen online sedan söka och ersätta text | Crypto | Shell-programmering och Skript | 4 | 01-04-2008 10:24 |
| lägga till strängen till textfil bygger på söksträng | malaymaru | Shell-programmering och Skript | 1 | 06-09-2006 08:53 |
![]() |
|
|
LinkBack | Thread Tools | Sök i denna tråd | Rate Thread | Visningslägen |
|
|
|
||||
|
Sök en sträng och lägga till text efter strängen
Hej,
Jag har en fil som denna ... <ot\u003d"Batch" id\u003d"8410" p\u003d"/" g\u003d"32"> <an\u003d"name"> <vs\u003d"DBBA1MM"/> </ a> <an\u003d"owner"> <vr\u003d"/[AdminUser]Administrator"/> </ a> <an\u003d"rights"> <vs\u003d"95"/> </ a> <an\u003d"debugLevel"> <vs\u003d"3"/> </ a> <an\u003d"avsStoreLoc"> <vs\u003d"/home/kp1771/fw_base_path/collectors/DBBA1MM/avs"/> </ a> </ o> <ot\u003d"Batch" id\u003d"8410" p\u003d"/" g\u003d"27"> <an\u003d"name"> <vs\u003d"DBBA1MM"/> </ a> <an\u003d"owner"> <vr\u003d"/[AdminUser]Administrator"/> </ a> <an\u003d"rights"> <vs\u003d"95"/> </ a> <an\u003d"avsStoreLoc"> <vs\u003d"/home/kp1771/fw_base_path/collectors/DBBA1MM/avs"/> </ a> </ o> Jag måste tillägga <an\u003d"debugLevel"> <vs\u003d"3"/> </ a> efter <an\u003d"rights"> <vs\u003d"95"/> </ a> om <an\u003d"debugLevel"> <vs\u003d"3"/> </ a> inte utgångar. Jag måste lägga till taggen i rött Om existerar måste ändra <an\u003d"debugLevel"> <vs\u003d"4"/> </ a> kan du hjälpa mig på detta .. någon typ av hjälp är uppskattad tack |
|
||||
|
Har du provat något så här långt? Jag skulle använda awk att göra detta. När det visar <an\u003d"rights"> Du kan läsa vidare några rader med getline. Om det innehåller "debugLevel" du kan skriva ut nya debug-nivå, om inte, lägg bara debug nivå 3. För varannan linje, bara skriva ut det.
|
|
||||
|
Här har jag gjort det mesta av jobbet åt dig, bör du kunna avsluta det enkelt:
Kod:
awk '
/n="rights"/ {
print
getline ; print
getline ; print
getline
if (match($0,"debugLevel")) {
print "<a n=\"debugLevel\">\n<v s=\"4\"/>\n</a>"
# consume and discard next two lines
getline
getline
} else {
# do some stuff here
print
}
next
}
1 # print other lines
' inputfile > outputfile
|