|
|
|
|
Google Site
|
|||||||
| Forum | Registrati | Blog | Man Pages | Regole Forum | Collegamenti | Album | FAQ | Utenti | Calendario | Ricerca | Today's Posts | Mark Forums Read |
| Shell scripting e di programmazione Pubblica domande su KSH, CSH, SH, Bash, Perl, PHP, sed, awk e da altri script di shell e linguaggi di scripting shell qui. |
![]() |
|
|
Thread Tools | Cerca in questo Thread | Rate Thread | Modalità di visualizzazione |
|
|||
|
Cerca una stringa di testo e aggiungere dopo la stringa
Salve,
Ho un file di questo tipo ... <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> Devo aggiungere <an\u003d"debugLevel"> <vs\u003d"3"/> </ a> dopo <an\u003d"rights"> <vs\u003d"95"/> </ a> se <an\u003d"debugLevel"> <vs\u003d"3"/> </ a> non esce. Devo aggiungere il tag in rosso Se esiste è di modificare <an\u003d"debugLevel"> <vs\u003d"4"/> </ a> mi potete aiutare in questo .. ogni tipo di aiuto è appriciated grazie |
| Sponsored Links | ||
|
|
|
|||
|
Hai provato nulla finora? Vorrei utilizzare awk per fare questo. Quando si trova <an\u003d"rights"> si può leggere in anticipo alcune righe utilizzando getline. Se non contiene "DebugLevel" si può stampare il nuovo livello di debug, in caso contrario, è sufficiente aggiungere il livello di debug 3. Per ogni altra linea, appena stampato.
|
|
|||
|
Qui, ho fatto la maggior parte del lavoro per voi, si dovrebbe essere in grado di finire facilmente: Codice:
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 > outputfileHai solo bisogno di riempire il "fare qualche roba qui" parte. |
|
|||
|
Codice:
cp -p originalfile originalfile.bak && awk '<your script here>' originalfile.bak > originalfile |
| Sponsored Links |
|
|
![]() |
| Segnalibri |
| Thread Tools | Cerca in questo Thread |
| Modalità di visualizzazione | Vota questo thread |
|
|
Più di UNIX e Linux Forum Argomenti potreste trovare utili
|
||||
| Filo | Thread Starter | Forum | Risposte | Ultimo Post |
| Ricerca, sostituire stringa in file1 con stringa a partire da (tabella di ricerca) file2? | gstuart | Shell scripting e di programmazione | 9 | 06-08-2009 07:11 AM |
| ricerca excat stringa in un'altra stringa (grep "non") | bora99 | UNIX for Dummies Domande & Risposte | 0 | 06-05-2008 07:41 AM |
| stringa di testo da ricercare | itik | AIX | 2 | 01-28-2008 07:01 PM |
| Perl: Cerca stringa di ricerca on-line e quindi sostituire il testo | Crypto | Shell scripting e di programmazione | 4 | 01-04-2008 10:24 AM |
| aggiungendo stringa di file di testo basati su stringa di ricerca | malaymaru | Shell scripting e di programmazione | 1 | 06-09-2006 09:53 AM |