• Opret dig
  • Glemt adgangskode

User account menu

  • Artikler
  • Forside
  • Forum
  • Nyheder
  • Log ind
Hjem
LinuxIN.dk

Snak med

Opret dig!

Af j0hnd0342 | 28.02.2011 15:53

Erstatte en delstreng i bash

Programmering
Hej

Hvordan erstatter man en delstreng i en variabel med en anden delstreng.

Eksempelvis skal

ORIG=hejmedmig
REPLACED=${ORIG//mig/dig}
echo $REPLACED

udskrive hejmeddig

Når jeg kører fejlen får jeg en fejl: Bad Substitution.

Er der en, der kan hjælpe?
  • Log ind eller opret dig for at tilføje kommentarer

Kommentarer9

# 1

15 år 1 måned siden

Permalink

Indsendt af divineant den 28. februar 2011 kl. 16:17

Permalink

Det virker fint når jeg

Det virker fint når jeg kører det, med bash version 4.1.9(2)-release
Hvilken version af kører du? Bash 4.* kan mange spændende ting som du ikke kunne i 3.*, skal dog ikke kunne sige om dette er en af dem.
  • Log ind eller opret dig for at tilføje kommentarer

# 2

15 år 1 måned siden

Permalink

Indsendt af mich den 28. februar 2011 kl. 18:51

Permalink

http://www.tldp.org/LDP/abs/h

http://www.tldp.org/LDP/abs/html/string-manipulation.html
Søg efter 'Substring Replacement'.
  • Log ind eller opret dig for at tilføje kommentarer

# 3

15 år 1 måned siden

Permalink

Indsendt af j0hnd0342 den 28. februar 2011 kl. 19:00

Permalink

#2 Hvis jeg bruger ideen

#2 Hvis jeg bruger ideen derfra


stringZ=abcABC123ABCabc

echo ${stringZ/abc/xyz} # xyzABC123ABCabc



får jeg samme fejl

#1 GNU bash, version 4.1.5(1)-release (x86_64-pc-linux-gnu)
  • Log ind eller opret dig for at tilføje kommentarer

# 4

15 år 1 måned siden

Permalink

Indsendt af mich den 28. februar 2011 kl. 19:31

Permalink

Jeg er ikke så meget med

Jeg er ikke så meget med på noderne, så jeg bruger bash version 3.2.48, og der virker det lige efter bogen.

Prøv at se i man bash under Parameter Substitution. Der er det hos mig beskrevet som
${parameter/pattern/string}
nøjagtig som i eksemplet, jeg henviste til. Prøv at se om der evt. skulle være ændret i syntaksen, hvilket jeg dog finder ret usansynligt.

Hvis andet glipper kan du evt. prøve at opdatere bash eller installere en ældre version. Eller nyere. Det virker åbenbart med 4.1.9.
Men pas på, hvad du gør. Hvis du får slettet bash, får du problemer.

  • Log ind eller opret dig for at tilføje kommentarer

# 5

15 år 1 måned siden

Permalink

Indsendt af cedeel den 28. februar 2011 kl. 19:41

Permalink

Lukker lige det irriterende

Lukker lige det irriterende tag.
  • Log ind eller opret dig for at tilføje kommentarer

# 6

15 år 1 måned siden

Permalink

Indsendt af lbm den 28. februar 2011 kl. 21:09

Permalink

Sjovt får samme

--edit--
Nu virker det, hvordan starter du scriptet?


  • Log ind eller opret dig for at tilføje kommentarer

# 7

15 år 1 måned siden

Permalink

Indsendt af j0hnd0342 den 28. februar 2011 kl. 21:28

Permalink

sh script.sh

sh script.sh

ah okay, det virker åbenbart med ./a.sh
  • Log ind eller opret dig for at tilføje kommentarer

# 8

15 år 1 måned siden

Permalink

Indsendt af kop den 28. februar 2011 kl. 21:41

Permalink

sh script.sh

Prøv at indsætte

#!/bin/bash

Som første linie i dit bash script

Prøv herefter

./script.sh

  • Log ind eller opret dig for at tilføje kommentarer

# 9

15 år 1 måned siden

Permalink

Indsendt af lbm den 28. februar 2011 kl. 22:30

Permalink

Lavede samme fejl 40. Hvis

Lavede samme fejl 40. Hvis du bruger sh, så benytter den shell, og er ligeglad med hvad der står i starten af filen.

Du kan også bruge bash filnavn.
  • Log ind eller opret dig for at tilføje kommentarer

Svar søges

tst 0
Linux Fanpakke til LUG'er og foreninger 0
KDE Plasma 6.6 skrivebordsmiljø udgivet 0
GRUB 2.14 introducerer understøttelse af EROFS, forbedringer til Btrfs og LVM 0
KDE Plasma 6.6 tilføjer en funktion, som brugerne har spurgt efter i evigheder 0

Seneste aktivitet

USB problemer 3
Frankrig lancerer regeringsplan for skift til Linux desktops 4
Pepsi Challenge 18
Canonical planlægger Kontroversielle GRUB ændringer til Ubuntu 26.10 Secure Boot 1
Ubuntu MATE grundlægger Martin Wimpress træder tilbage efter 12 år 1
OpenShot 3.5 tager et spring fremad inden for ydeevne, AI og videoredigering 4
(U)hyggen breder sig 6
rsync og filsystem 7
Stor sejr for open source, da Tyskland støtter åbent dokumentformat 2
youtube-tui: Nyd YouTube fra terminalen som en professionel 5
Lukker og slukker 8
BigLinux 6
Det engang så elskede PCLinuxOS er tilbage - og det er stadig en fantastisk Windows erstatning 1
Mousam er en detaljeret desktop vejrapp til Linux 1
Hjælp til Handbrake - ingen dk-undertekster 1
luckyBackup 2
GIMP 30
Pinegrow på Debian 13 ? 4
Openmediavault 1
E-mail blues 9

© 2026 Linuxin og de respektive skribenter

Oprettet og drevet af nørder siden 2004 !