Vraag & Antwoord
[Bash] Eenvoudig scriptje om een string te bewerken
4 antwoorden
- Ik wat zit te rommelen met een BASH-scriptje waarmee ik een string wil bewerken. Ik kom er vooralsnog niet uit.
Wat ik wil bereiken is: als de eerste zes karakters van een string gelijk zijn aan een (tweede) string van zes karakters worden die eerste zes karakters vervangen door een (derde) string van zeven karakters . Dus (in een soort quasi BASH-scripptaal) iets als:
#!/bin/bash
if STRING[1-6]="abcdef"
then
STRING="tuvwxyz"&STRING[7-einde]
else
#dit is natuurlijk niet echt nodig, maar wel informatief
STRING=STRING
fi
Op dit moment zie ik door de vele GNU/Linux bomen (overal vind je wel informatie, maar net niet dat wat je zoekt!) het bos niet meer. Wie helpt mij op weg? - Ik zie op dit forum niet veel programmeer-vragen. Misschien kun je met je vraag beter terecht bij nl.linux.org/forum of forum.nedlinux.nl.
- Wat mij betreft doen we hier ook programmeervragen :-)
Je kan zoiets proberen (tip: koop een goed boek over Bash programming, of neem de bash man en info pages door. Staat ECHT ALLES in! De bash manpage uitprinten kan met [b:1c77a09602]man -t bash | lpr[/b:1c77a09602])
[code:1:1c77a09602]
#!/bin/bash
#begint met "abcdef" ?
string=$1 # eerste argument op de opdrachtregel
if [ "${string:0:6}" = "abcdef" ]
then
string="tuvwxyz${string:6}"
fi
[/code:1:1c77a09602]
de "[" is eigenlijk een shortcut voor de "test" instructie, dus het volgende kan ook:
[code:1:1c77a09602]
if test "${string:0:6}" = "abcdef"
then
string="tuvwxyz${string:6}"
fi
[/code:1:1c77a09602]
of:
[code:1:1c77a09602]
test "${string:0:6}" = "abcdef" && string="tuvwxyz${string:6}"
[/code:1:1c77a09602]Zie man bash, onder "Parameter Expansion" - Kijk eens naar de advanced-bash-scripting howto op www.linuxdoc.org. Daar kun je vast ook nog wel het een en ander in vinden.
Beantwoord deze vraag
Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.