Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

OS Linux

[Bash] Eenvoudig scriptje om een string te bewerken

PeBo
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.