The UNIX and Linux Forums  

Go Back   UNIX og Linux Forums > Top Forums > Shell Programmering og Scripting
.
google unix.com



Shell Programmering og Scripting Post spørgsmål om ksh, CSH, SH, Bash, Perl, PHP, SED, AWK og ANDRE shell scripts og Shell scriptsprog her.

Mere UNIX og Linux Forum Emner du måske kan finde Helpful
Tråd Thread Starter Forum Svar Last Post
Fjern mappe som har specialtegn datherriault UNIX for dummyer Spørgsmål & svar 12 01-14-2009 05:53 PM
fjerne særlige og Unicode-tegn shantanuo UNIX for dummyer Spørgsmål & svar 1 12-05-2008 09:16 AM
Fjern varer tegn fra en streng chriss_58 Shell Programmering og Scripting 6 11-28-2008 06:07 AM
Hjælp med at finde og erstatte w / strengen indeholder specialtegn CAGIRL UNIX for dummyer Spørgsmål & svar 4 10-07-2008 08:13 PM
Tilføj streng efter en anden streng med specialtegn heliode Shell Programmering og Scripting 2 03-21-2008 08:06 AM

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 Søg denne tråd Rate Thread Display Modes
  #1 (permalink)  
Old 12-04-2008
chebarbudo's Avatar
chebarbudo chebarbudo is offline
Registreret Bruger
  
 

Join Date: Nov 2008
Beliggenhed: Diverse
Posts: 188
Question Fjern specialtegn fra strengen

Hej!
Jeg vil gerne skrive et script, der fjerner enhver form for karakter fra nogen streng. Det første argument vil være streng, det andet argument ville være de tegn, der skal fjernes. For eksempel:

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

Jeg skrev følgende kode:

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

Men det gør ikke arbejde med følgende specialtegn: #% *? \
Er der nogen enkel måde at gøre det?
Hvordan kan jeg få det til at fungere med alle tegn?

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

Join Date: Aug 2008
Stillinger: 5
Prøv bestået specialtegn med en \ foran.
På den anden side, hvorfor ikke bare bruge regulære udtryk med sed eller perl etc.?
  #3 (permalink)  
Old 12-04-2008
Franklin52 Franklin52 is online now Forum Staff  
Moderator
  
 

Join Date: Feb 2007
Indlæg: 4.346
Eller blot med tr. Check-d option i manden side.

Hilsen
  #4 (permalink)  
Old 12-04-2008
chebarbudo's Avatar
chebarbudo chebarbudo is offline
Registreret Bruger
  
 

Join Date: Nov 2008
Beliggenhed: Diverse
Posts: 188
Citat:
Oprindeligt Indsendt af Franklin52 View Post
Eller blot med tr. Check-d option i manden side.
Stor! Det eneste tegn, der ikke virker er backslah men her mit nye løsning:

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  
Registreret Bruger
  
 

Join Date: Jun 2007
Location: Beijing Kina
Posts: 1.098

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
Registreret Bruger
  
 

Join Date: Nov 2008
Beliggenhed: Diverse
Posts: 188
Citat:
Oprindeligt Indsendt af Wolfclaw View Post
Prøv bestået specialtegn med en \ foran.
På den anden side, hvorfor ikke bare bruge regulære udtryk med sed eller perl etc.?
Det er præcis, hvad jeg spurgte om! Jeg er sikker på, at der er en enklere måde at gøre det ... Men hvordan?
Jeg kan ikke passere specialtegn med en backslash fordi mit script læser andet argument tegn for tegn. Så hvis $ 2 "\ #", scriptet vil først forsøge at erstatte \ (og den ikke) og derefter forsøge at erstatte # (og den ikke alt for).
Enhver anden idé?
  #7 (permalink)  
Old 12-04-2008
Wolfclaw Wolfclaw is offline
Registreret Bruger
  
 

Join Date: Aug 2008
Stillinger: 5
anden grund sit arbejde med enkelt anførselstegn i kommandolinjen argumenter. I dont know, hvorfor det er skønt * shrugs *
Reply

Bogmærker

Tags
shell script, shell-scripting, str, unix scripting, unix scripting basics

Thread Tools Søg denne tråd
Søg denne tråd:

Avanceret søgning
Display Modes Bedøm denne tråd
Bedøm denne tråd:

Udstationering Regler
Du kan ikke post nye tråde
Du kan ikke post svar
Du kan ikke post vedhæftede filer
Du kan ikke redigere dine indlæg

BB-kode er
Smilies er
[IMG] koden er
HTML-koden er Slukket
Trackbacks er
Pingbacks er
Refbacks er




Alle tidspunkter er GMT -4. Den tid er nu 09:07 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Oversættelser Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX og Linux Forums Content Copyright © 1993-2009. Alle rettigheder Reserved.Ad Management ved RedTyger

Content Relevant webadresser ved vBSEO 3.2.0