The UNIX and Linux Forums  
Hei og Velkommen fra USA til UNIX og Linux Forums! Takk for besøket og Delta i vårt globale samfunn.

Go Back   UNIX og Linux Forums > Top Forums > Shell programmering og Skripting
.
google unix.com



Shell programmering og Skripting Post spørsmål om ksh, csh, SH, Bash, Perl, PHP, SED, awk og ANDRE shell scripts og Shell skriptespråk her.

Mer UNIX og Linux Forum Emner Du kan finne nyttig
Tråd Tråd startet Forum Svar Siste innlegg
Telle antall forekomster av et ord shikhakaul UNIX for Dummies Spørsmål og svar 8 06-25-2009 11:10
PERL: Enkelt reg expr validere 6 siffer nummer BufferExploder Shell programmering og Skripting 2 09-10-2008 11:15
Telle antall forekomst av perticular ord fra fil rinku Shell programmering og Skripting 40 08-10-2007 07:33
ord teller viser feil antall linjer tselvanin UNIX for Dummies Spørsmål og svar 3 01-06-2004 11:33
begrense antall sifre i en PID mlefebvr UNIX for Advanced & ekspertbrukere 1 05-27-2002 09:33

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øk i denne tråden Vurdering: Thread Rating: 1 votes, 4.00 average. Visningsmoduser
  #1 (permalink)  
Old 01-05-2009
./hari.sh's Avatar
. / hari.sh ./hari.sh is offline
Registrert bruker
  
 

Bli Dato: juli 2007
Location: India
Innlegg: 44
Telle antall sifre i et ord

Hei alle

Kan noen foreslå meg, hvordan du får antall sifre i et ord

Jeg prøvde

Code:
WORD=abcd1234
echo $WORD | grep -oE [[:digit:]] | wc -l
4
Det fungerer i bash kommandolinjen, men ikke i skript
  #2 (permalink)  
Old 01-05-2009
tsurko tsurko is offline
Registrert bruker
  
 

Bli Dato: juni 2007
Beliggenhet: Sofia, Bulgaria
Innlegg: 35
Kan du vise oss hvordan du bruker denne koden i skriptet? Hvis du vil lagre den i en variabel prøve noe 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
Registrert bruker
  
 

Bli Dato: juli 2007
Location: India
Innlegg: 44
det er noe annet problem ...

La meg fortelle deg hva jeg vil

Jeg har et ord med 8 chrs, noe som abc12345 eller ab123456

Nå, hvis de fem siste chrs er sifre da jeg ønsker å gjøre noe annet drift

Jeg brukte koden
Code:
if [ `echo $WORD | cut -c 4-8  | grep -oE [[:digit:]] | wc -l` -eq 5 ]
then
do this...
bash kommandolinjen det gir effekt, men i skriptet gir "0" alltid "
  #4 (permalink)  
Old 01-05-2009
SFNYC SFNYC is offline
Registrert bruker
  
 

Bli Dato: juni 2008
Sted: New York City
Innlegg: 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 online now Forum Staff  
stoffmisbruker
  
 

Bli Date: Jan 2007
Beliggenhet: Варна, България / Milano, Italia
Innlegg: 2854
Sitat:
Originally Posted by . / hari.sh View Post
Hei alle

Kan noen foreslå meg, hvordan du får antall sifre i et ord

Jeg prøvde

Code:
WORD=abcd1234
echo $WORD | grep -oE [[:digit:]] | wc -l
4
Det fungerer i bash kommandolinjen, men ikke i skript
Det synes du er på GNU system, så har du sannsynligvis bash > \u003d 3, og du kan prøve noe 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 online now Forum Staff  
Moderator
  
 

Bli Date: Feb 2005
Sted: Boston, MA
Innlegg: 5121
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 online now Forum Staff  
stoffmisbruker
  
 

Bli Date: Jan 2007
Beliggenhet: Варна, България / Milano, Italia
Innlegg: 2854
Eller:
Code:
% perl -le'print shift=~/\d{5}$/?"OK":"KO"' abcd1234
KO
% perl -le'print shift=~/\d{5}$/?"OK":"KO"' abcd12345
OK
Closed Thread

Hugseliste

Tags
perl, perl skiftarbeid, skifte, shift perl

Thread Tools Søk i denne tråden
Søk i denne tråden:

Avansert søk
Visningsmoduser Ranger denne tråden
Ranger denne tråden:

Innleggsaktivitet Regler
Du kanskje ikke poste nye tråder
Du kanskje ikke poste svar
Du kanskje ikke post vedlegg
Du kanskje ikke redigere innleggene dine

BB-kode er
Smilefjes er
[IMG] koden
HTML-koden Av
Pingbacks er
Refbacks er




Alle klokkeslett er GMT -4. Nå er klokken 04:49.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Language Translations Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX og Linux Forums Content Copyright © 1993-2009. All Rights Reserved.Ad Management by RedTyger

Content Relevant nettadresser av vBSEO 3.2.0