Ik kan best wel een beetje basis scripten, maar sed is niet direct mijn vriend.
Ik ben bezig met een ksh-script wat een aantal files moet wijzigen.
Ik gebruik een "for i in .... " constructie om de diverse files te wijzigen.
Het probleem:
Ik heb een bestand dit bevat een regel met een bepaalde string. Deze string is 8 tot 10 karakters lang, maar staat alleen op een bepaalde regel. Het regel nummer is ook bekend (zeg maar regel 13). Ik wil deze string wijzigen naar iets wat wel bekend is.
Naar mijn idee zou het dat iets moeten worden van:
Helaas kan het voorkomen dat er een * in de te vervangen tekst voorkomt en dat blijft er dus een deel staan.
Hoe kan ik ongeacht wat er staat een nieuwe tekst over de bestaande heenzetten? Of de regel verwijderen en een nieuwe invoegen?
Ik heb gezocht, maar bijna alle voorbeelden gaan er vanuit dat je weet wat je gaat vervangen en dat het gewone tekst is.
Ik ben bezig met een ksh-script wat een aantal files moet wijzigen.
Ik gebruik een "for i in .... " constructie om de diverse files te wijzigen.
Het probleem:
Ik heb een bestand dit bevat een regel met een bepaalde string. Deze string is 8 tot 10 karakters lang, maar staat alleen op een bepaalde regel. Het regel nummer is ook bekend (zeg maar regel 13). Ik wil deze string wijzigen naar iets wat wel bekend is.
Naar mijn idee zou het dat iets moeten worden van:
code:
1
| sed -e '13s/*/nieuwetext/g' bestand.oud > bestand.nieuw |
Helaas kan het voorkomen dat er een * in de te vervangen tekst voorkomt en dat blijft er dus een deel staan.
Hoe kan ik ongeacht wat er staat een nieuwe tekst over de bestaande heenzetten? Of de regel verwijderen en een nieuwe invoegen?
Ik heb gezocht, maar bijna alle voorbeelden gaan er vanuit dat je weet wat je gaat vervangen en dat het gewone tekst is.