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
Tæl antallet af forekomster af et ord shikhakaul UNIX for dummyer Spørgsmål & svar 8 06-25-2009 12:10 PM
PERL: Simpelt reg expr validere 6 cifre antal BufferExploder Shell Programmering og Scripting 2 09-10-2008 12:15 PM
Tæl antallet af forekomsten af perticular ord fra fil rinku Shell Programmering og Scripting 40 08-10-2007 08:33 PM
ord tæller viser forkert antal linjer tselvanin UNIX for dummyer Spørgsmål & svar 3 01-06-2004 11:33 PM
begrænse antallet af cifre i en PID mlefebvr UNIX for Advanced & Ekspertsøgning Brugere 1 05-27-2002 10:33 AM

Closed Thread
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 Karakter: Thread Rating: 1 votes, 4.00 average. Display Modes
  #1 (permalink)  
Old 01-05-2009
./hari.sh's Avatar
. / hari.sh ./hari.sh is offline
Registreret Bruger
  
 

Join Date: Jul 2007
Beliggenhed: Indien
Stillinger: 44
Tæl antallet af cifre i et ord

Hej alle

Kan nogen foreslå mig, hvordan du får det tælle cifre i et ord

Jeg forsøgte


Code:
WORD=abcd1234
echo $WORD | grep -oE [[:digit:]] | wc -l
4

Det virker i bash kommando, men ikke i scripts
  #2 (permalink)  
Old 01-05-2009
tsurko tsurko is offline
Registreret Bruger
  
 

Join Date: Jun 2007
Sted: Sofia, Bulgarien
Stillinger: 35
Kan du vise os, hvordan du bruger denne kode i dit script? Hvis du ønsker at gemme det i en variabel prøve noget som dette:

Code:
COUNT=`echo $WORD | grep -oE [[:digit:]] | wc -l`

  #3 (permalink)  
Old 01-05-2009
./hari.sh's Avatar
. / hari.sh ./hari.sh is offline
Registreret Bruger
  
 

Join Date: Jul 2007
Beliggenhed: Indien
Stillinger: 44
der er nogle andre problemer ...

Lad mig fortælle dig, hvad jeg vil

Jeg har et ord med 8 chrs, noget lignende abc12345 eller ab123456

Nu, hvis sidste fem chrs er cifre da jeg ønsker at gøre nogle andre operation

Jeg brugte den kode

Code:
if [ `echo $WORD | cut -c 4-8  | grep -oE [[:digit:]] | wc -l` -eq 5 ]
then
do this...

bash kommandolinjen det giver resultater, men i script det giver "0" altid "
  #4 (permalink)  
Old 01-05-2009
SFNYC SFNYC is offline
Registreret Bruger
  
 

Join Date: Jun 2008
Beliggenhed: New York City
Stillinger: 95

Code:
$ cat ./testgrep.ksh
#!/bin/ksh

WORD=abc12345

echo $WORD|grep -qE "[[:digit:]]{5}$"
if [ $? -eq 0 ]; then
     echo "Do this with $WORD"
else
     echo "Else do this with $WORD"
fi

WORD2=ab123456

echo $WORD2|grep -qE "[[:digit:]]{5}$"
if [ $? -eq 0 ]; then
     echo "Do this with $WORD2"
else
     echo "Else do this with $WORD2"
fi

WORD3=abc1234

echo $WORD3|grep -qE "[[:digit:]]{5}$"
if [ $? -eq 0 ]; then
     echo "Do this with $WORD3"
else
     echo "Else do this with $WORD3"
fi

exit 0

$ ./testgrep.ksh
Do this with abc12345
Do this with ab123456
Else do this with abc1234

  #5 (permalink)  
Old 01-05-2009
radoulov's Avatar
radoulov radoulov is offline Forum Staff  
narkoman
  
 

Join Date: Jan 2007
Beliggenhed: Варна, България / Milano, Italia
Indlæg: 2.926
Citat:
Oprindeligt Indsendt af . / hari.sh View Post
Hej alle

Kan nogen foreslå mig, hvordan du får det tælle cifre i et ord

Jeg forsøgte


Code:
WORD=abcd1234
echo $WORD | grep -oE [[:digit:]] | wc -l
4

Det virker i bash kommando, men ikke i scripts
Det synes du er på GNU system, så du sandsynligvis have bash > \u003d 3, og du kan prøve noget som dette:

Code:
$ WORD=abcd1234
$ [[ $WORD  =~ [0-9]{5}$ ]] && echo OK || echo KO
KO
$ WORD=abcd12345
$ [[ $WORD  =~ [0-9]{5}$ ]] && echo OK || echo KO
OK

  #6 (permalink)  
Old 01-05-2009
vgersh99's Avatar
vgersh99 vgersh99 is offline Forum Staff  
Moderator
  
 

Join Date: Feb 2005
Beliggenhed: Boston, MA
Indlæg: 5.131

Code:
#!/bin/ksh

WORD=abcd1234

[[ $(echo "${WORD}" | awk '{print gsub("[0-9]", "")}')  -eq 5 ]] && echo OK || echo KO

  #7 (permalink)  
Old 01-05-2009
radoulov's Avatar
radoulov radoulov is offline Forum Staff  
narkoman
  
 

Join Date: Jan 2007
Beliggenhed: Варна, България / Milano, Italia
Indlæg: 2.926
Eller:

Code:
% perl -le'print shift=~/\d{5}$/?"OK":"KO"' abcd1234
KO
% perl -le'print shift=~/\d{5}$/?"OK":"KO"' abcd12345
OK

Closed Thread

Bogmærker

Tags
perl, perl skift, skift, skift perl

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 02:09 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