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
Les csv i Hash array? kinmak Shell programmering og Skripting 1 05-07-2008 10:35
Hvordan lese fra txt-fil og bruke det som en matrise pinky UNIX for Dummies Spørsmål og svar 4 10-08-2007 12:18
opprette array holde tegn fra sring deretter ekko matrise. rorey_breaker Shell programmering og Skripting 5 09-28-2007 08:42
ls mens les loop - intern lese plukke opp feil skriving dkieran Shell programmering og Skripting 2 05-14-2007 03:02
Hvordan kan jeg lese matrise elementer dynamisk i bash? haisubbu UNIX for Dummies Spørsmål og svar 1 08-29-2006 02:19

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 Rate Thread Visningsmoduser
  #1 (permalink)  
Old 07-23-2008
aoussenko aoussenko is offline
Registrert bruker
  
 

Bli Dato: mai 2008
Innlegg: 119
Hvordan lese en var verdi i array

Hei
Jeg trenger å lese en variabelverdien i matrise slik at hver bokstav / tall vil bli en hel del, for eksempel:
A \u003d 147921231432545436547568678679870
Den resulterende matrisen bør holde hvert siffer som et element.
Takk for hjelp-A
  #2 (permalink)  
Old 07-23-2008
thana thana is offline
Registrert bruker
  
 

Bli Date: Jan 2008
Innlegg: 55
Det bør være en form for SEPERATOR blant verdier
  #3 (permalink)  
Old 07-23-2008
Sivaswami's Avatar
Sivaswami Sivaswami is offline
Registrert bruker
  
 

Bli Date: Mar 2007
Location: India
Innlegg: 62
Du kan bruke cut-kommandoen i en loop.

cut-c <position>
  #4 (permalink)  
Old 07-23-2008
zaxxon's Avatar
zaxxon zaxxon is offline Forum Staff  
Moderator
  
 

Bli Dato: Sep 2007
Sted: Tyskland
Innlegg: 2277
Ja, det ville være den 1. trinn.

Skriv det for eksempel som
Code:
A="842 5 2 64  24 11"
Deretter kan du bla gjennom den med for eksempel
Code:
for ELE in ${A}; do
   echo "I want ${ELE] cookies!"
done
  #5 (permalink)  
Old 07-24-2008
danmero danmero is online now Forum Advisor  
  
 

Bli Dato: november 2007
Beliggenhet: 45.48-73.63
Innlegg: 1421
Sitat:
Originally Posted by aoussenko View Post
Hei
Jeg trenger å lese en variabelverdien i matrise slik at hver bokstav / tall vil bli en hel del, for eksempel:
A \u003d 147921231432545436547568678679870
Den resulterende matrisen bør holde hvert siffer som et element.
Takk for hjelp-A
Neste gang kan du bruke koden koder.
Her er bash løsning:
Code:
$ A=147921231432545436547568678679870
$ set -- $(for i in $(seq 0 $((${#A} - 1)));do printf "%s " ${A:$i:1};done)
$ echo $*
1 4 7 9 2 1 2 3 1 4 3 2 5 4 5 4 3 6 5 4 7 5 6 8 6 7 8 6 7 9 8 7 0
... eller awk løsning:
Code:
set -- $(awk -v v="$A" 'BEGIN{split(v,a,"");for (i=1;i<= length(v);i++) printf "%s ",a[i]}')

Sist endret av danmero; 07-24-2008 på 12:16.. Årsak: legge awk løsning
  #6 (permalink)  
Old 07-24-2008
BMDan BMDan is offline
Registrert bruker
  
 

Bli Dato: juli 2008
Beliggenhet: BlackMesh Managed Hosting
Innlegg: 66
Jeg liker denne litt bedre enn danmero eksempel, som det faktisk plasserer den i en matrise:

Code:
for i in $(seq 0 $((${#string}-1))); do array[$i]=${string:$i:1}; done
Som produserer:

Code:
$ A=147921231432545436547568678679870; for i in $(seq 0 $((${#A}-1))); do array[$i]=${A:$i:1}; done

$ set | grep array
array=([0]="1" [1]="4" [2]="7" [3]="9" [4]="2" [5]="1" [6]="2" [7]="3" [8]="1" [9]="4" [10]="3" [11]="2" [12]="5" [13]="4" [14]="5" [15]="4" [16]="3" [17]="6" [18]="5" [19]="4" [20]="7" [21]="5" [22]="6" [23]="8" [24]="6" [25]="7" [26]="8" [27]="6" [28]="7" [29]="9" [30]="8" [31]="7" [32]="0" [33]="")
Merk at dette ikke for særlig store strenger; bare bryte ut av den for, og bruk en stund (eller et C-stil for ()) i stedet.

Hvis det er det du leter etter, kan du også opprette samme virkning som danmero's script med sed:
Code:
$ echo 147921231432545436547568678679870 | sed 's/\(.\)/\1 /g'
1 4 7 9 2 1 2 3 1 4 3 2 5 4 5 4 3 6 5 4 7 5 6 8 6 7 8 6 7 9 8 7 0

Sist endret av BMDan; 07-24-2008 på 02:09.. Reason: Legg sed løsning
  #7 (permalink)  
Old 07-24-2008
radoulov's Avatar
radoulov radoulov is offline Forum Staff  
stoffmisbruker
  
 

Bli Date: Jan 2007
Beliggenhet: Варна, България / Milano, Italia
Innlegg: 2859
Med Z-Shell:

Code:
zsh-4.3.4% A=147921231432545436547568678679870
zsh-4.3.4% print $A[4]
9
zsh-4.3.4% print $A[-3]
8
Med bash/ksh93, her streng og fold:

Code:
$ a=($(fold -w1<<<$A))
$ printf "%s\n" "${a[0]}"
1
$ printf "%s\n" "${a[3]}"
9
For voksne shells:

Code:
$ A=147921231432545436547568678679870
$ set -- `printf "%s\n" "$A"|fold -w1`
$ printf "%s\n" "$1"
1
$ printf "%s\n" "$4"
9
Closed Thread

Hugseliste

Tags
shell array, variable manipulasjon

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 11:33.


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