Hallo,
Ik ken jammergenoeg nog maar erg weinig van awk. Ik heb dit laatste dagen proberen te verbeteren door te zoeken naar een manier om een "Replace All" te doen met awk in een textfile, maar er blijven vreemde dingen gebeuren.
Het zit zo:
* De server is een hp-ux unix server
* De file die ik wil bewerken met een commando is een config.xml van BEA WLS
* De bedoeling is dat ik bepaalde paden met een specifiek patroon, vervang door een ander path (een link meer bepaald)
Op een gegeven moment heb een voorgekauwt "awk replace commando" gevonden. Dit commando heb ik zitten aanpassen, uitbreiden, etc, tot het werkte...
Na lang prutsen vervangt het commando ook effectief de string die ik vervangen wil zien worden
MAAR als ik ook maar een lettertje verander in het te zoeken patroon, dan geraakt het awk commando in een oneindige lus en append het "blancs" of andere blokjes tekst tot in het oneindige
Dit maakt de xml file dan ook stuk...
Ik heb lang zitten proberen een regelmaat te zoeken voor wanneer het commando fout loopt, waar het aan ligt, maar heb dit niet kunnen vinden (het gebeurt bv zowel als het te replacen patroon in de file de vinden valt, als wanneer het te replacen patroon niet te vinden valt, maar soms ook weer niet, etc)
Dit is het werkende commando dat niet in een loop geraakt:
die replaced bv "/lapps/rueeflx04p04/jvaapp" door "/eflex_jva"
Maar als ik nu een simpele letter er ergens tussenzet, bv:
Dan geraakt het commando in een oneindige lus en zal ie constant bv "blancs" appenden
Maar zoals ik hierboven al vermeldde: het is niet altijd / alleen het wel of niet matchen van het patroon dat de oneindige lus bepaald...
Ik ben eigelijk nog een vrij grote awk n00b
het zou maw goed kunnen dat er iets zwaar fout is aan mijn commando ofzo
ik zou het dan ook enorm apprecieren als iemand me in "awk-n00b-taal" kan helpen om mijn replace commando te corrigeren
Ik ken jammergenoeg nog maar erg weinig van awk. Ik heb dit laatste dagen proberen te verbeteren door te zoeken naar een manier om een "Replace All" te doen met awk in een textfile, maar er blijven vreemde dingen gebeuren.
Het zit zo:
* De server is een hp-ux unix server
* De file die ik wil bewerken met een commando is een config.xml van BEA WLS
* De bedoeling is dat ik bepaalde paden met een specifiek patroon, vervang door een ander path (een link meer bepaald)
Op een gegeven moment heb een voorgekauwt "awk replace commando" gevonden. Dit commando heb ik zitten aanpassen, uitbreiden, etc, tot het werkte...
Na lang prutsen vervangt het commando ook effectief de string die ik vervangen wil zien worden
MAAR als ik ook maar een lettertje verander in het te zoeken patroon, dan geraakt het awk commando in een oneindige lus en append het "blancs" of andere blokjes tekst tot in het oneindige
Dit maakt de xml file dan ook stuk...
Ik heb lang zitten proberen een regelmaat te zoeken voor wanneer het commando fout loopt, waar het aan ligt, maar heb dit niet kunnen vinden (het gebeurt bv zowel als het te replacen patroon in de file de vinden valt, als wanneer het te replacen patroon niet te vinden valt, maar soms ook weer niet, etc)
Dit is het werkende commando dat niet in een loop geraakt:
code:
1
| awk '{sub("/lapps/[a-zA-Z]{3}eflx[0-9]{2}p[0-9]{2}/(stbjva|jvaapp)","/eflex_jva",$0); print > FILENAME}' test.txt |
die replaced bv "/lapps/rueeflx04p04/jvaapp" door "/eflex_jva"
Maar als ik nu een simpele letter er ergens tussenzet, bv:
code:
1
| awk '{sub("/lapps/[a-zA-Z]{3}eflx[b]a[/b][0-9]{2}p[0-9]{2}/(stbjva|jvaapp)","/eflex_jva",$0); print > FILENAME}' test.txt |
Dan geraakt het commando in een oneindige lus en zal ie constant bv "blancs" appenden
Maar zoals ik hierboven al vermeldde: het is niet altijd / alleen het wel of niet matchen van het patroon dat de oneindige lus bepaald...
Ik ben eigelijk nog een vrij grote awk n00b
het zou maw goed kunnen dat er iets zwaar fout is aan mijn commando ofzo
ik zou het dan ook enorm apprecieren als iemand me in "awk-n00b-taal" kan helpen om mijn replace commando te corrigeren