The UNIX and Linux Forums  


Go Back   De Unix-en Linux Forum > Top Forums > Programmeren en Shell Scripting
.
google unix.com



Programmeren en Shell Scripting Post vragen over KSH, CSH, SH, Bash, Perl, PHP, sed, awk en andere shell scripts en shell scripting talen hier.

Meer UNIX en Linux Forum Onderwerpen Misschien vindt u Helpful
Draad Thread Starter Forum Antwoorden Last Post
Verwijder map die speciale tekens datherriault UNIX voor Dummies Questions & Answers 12 01-14-2009 05:53 PM
verwijderen bijzondere en Unicode-tekens shantanuo UNIX voor Dummies Questions & Answers 1 12-05-2008 09:16
Verwijder duurt tekens uit een string chriss_58 Programmeren en Shell Scripting 6 11-28-2008 06:07
Hulp bij het zoeken en vervangen w / string met speciale tekens CAGIRL UNIX voor Dummies Questions & Answers 4 10-07-2008 08:13 PM
Toevoegen string na de andere string met speciale tekens heliode Programmeren en Shell Scripting 2 03-21-2008 08:06

Reply
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Zoeken in deze Thread Rate Thread Display Modes
  #1 (permalink)  
Old 12-04-2008
chebarbudo's Avatar
chebarbudo chebarbudo is offline
Geregistreerde gebruiker
  
 

Join Date: november 2008
Locatie: diverse
Posts: 188
Question Verwijder speciale tekens uit string

Hi there,
Ik wil graag een script schrijven dat verwijdert elk geheel van karakter van een string. Het eerste argument is de string, het tweede argument zou de tekens te verwijderen. Bijvoorbeeld:

Code:
$ myscript "My name's Santiago. What's yours?" "atu"
My nme's Snigo. Wh's yors?

Ik schreef de volgende code:

Code:
$ cat myscript
ans=$1
for (( i=0; i<${#2}; i++ )); do
    ans=${ans//${2:$i:1}/}
done
echo "$ans"

Maar het werkt niet met de volgende speciale tekens: #% *? \
Is er een eenvoudiger manier om dat te doen?
Hoe kan ik ervoor zorgen dat werken met alle tekens?

Thanks in advance
Santiago
  #2 (permalink)  
Old 12-04-2008
Wolfclaw Wolfclaw is offline
Geregistreerde gebruiker
  
 

Join Date: Aug 2008
Posts: 5
Probeer het passeren van de speciale tekens met een \ in front.
Aan de andere kant, waarom niet gewoon gebruik van reguliere expressies met sed of perl enz.?
  #3 (permalink)  
Old 12-04-2008
Franklin52 Franklin52 is offline Forum Staff  
Moderator
  
 

Join Date: Feb 2007
Berichten: 4.327
Of gewoon met tr. Vink de optie-D in de man pagina.

Groeten
  #4 (permalink)  
Old 12-04-2008
chebarbudo's Avatar
chebarbudo chebarbudo is offline
Geregistreerde gebruiker
  
 

Join Date: november 2008
Locatie: diverse
Posts: 188
Citaat:
Oorspronkelijk geplaatst door Franklin52 View Post
Of gewoon met tr. Vink de optie-D in de man pagina.
Geweldig! Het enige teken dat geen werk is backslah maar hier mijn nieuwe oplossing:

Code:
~$ cat myscript
echo "$1" | tr -d "${2//\\/\\\\}"
~$ myscript 'weird string !"#$%&'\''()*+,-./:;<=>?@[\]^_`{|}~' ' !"#$%&'\''()*+,-./:;<=>?@[\]^_`{|}~'
            <---------------------- $1 ----------------------> <---------------- $2 ---------------->
weirdstring
~$

Thanks a lot
  #5 (permalink)  
Old 07-05-2009
summer_cherry summer_cherry is offline Forum Advisor  
Geregistreerde gebruiker
  
 

Join Date: Jun 2007
Locatie: Beijing China
Berichten: 1.089

Code:
echo "My name's Santiago. What's yours?" | tr -d "atu"

  #6 (permalink)  
Old 12-04-2008
chebarbudo's Avatar
chebarbudo chebarbudo is offline
Geregistreerde gebruiker
  
 

Join Date: november 2008
Locatie: diverse
Posts: 188
Citaat:
Oorspronkelijk geplaatst door Wolfclaw View Post
Probeer het passeren van de speciale tekens met een \ in front.
Aan de andere kant, waarom niet gewoon gebruik van reguliere expressies met sed of perl enz.?
Dat is precies wat ik vroeg! Ik ben er zeker van dat er een eenvoudiger manier om dat te doen ... Maar hoe?
Ik kan niet door de speciale tekens met een backslash omdat mijn script leest het tweede argument teken van karakter. Dus als $ 2 wordt "\ #", zal het script eerst proberen te vervangen \ (en mislukt) probeer dan te vervangen # (en het ook niet).
Elk ander idee?
  #7 (permalink)  
Old 12-04-2008
Wolfclaw Wolfclaw is offline
Geregistreerde gebruiker
  
 

Join Date: Aug 2008
Posts: 5
om een of andere reden zijn het werken met enkele aanhalingstekens in de command-line argumenten. I dont weet waarom dit is al * shrugs *
Reply

Bladwijzers

Labels
shell script, shell scripting, str, Unix Scripting, unix scripting basics

Thread Tools Zoeken in deze Thread
Zoeken in deze Thread:

Uitgebreid zoeken
Display Modes Beoordeel deze draad
Beoordeel deze draad:

Posting Regels
Jij mag niet Post Nieuwe threads
Jij mag niet na antwoorden
Jij mag niet post attachments
Jij mag niet bewerk uw berichten

BB code is Aan
Smilies zijn Aan
[IMG] code Aan
HTML-code is Uit
Trackbacks zijn Aan
Pingbacks zijn Aan
Refbacks zijn Aan




Alle tijden zijn GMT -4. Het is nu 01:58 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Vertalingen Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
De Unix-en Linux Forums Copyright © 1993-2009. Alle rechten Reserved.Ad Beheer door RedTyger

Content Relevante URL's door vBSEO 3.2.0