![]() |
Hei og Velkommen fra USA til UNIX og Linux Forums! Takk for besøket og Delta i vårt globale samfunn.
|
|
google unix.com
|
|||||||
| Forums | Registrer | Forum Rules | Lenker | Album | FAQ | Medlemsliste | Kalender | Søke | Dagens innlegg | Marker forumene som lest |
| 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 |
![]() |
|
|
LinkBack | Thread Tools | Søk i denne tråden | Rate Thread | Visningsmoduser |
|
|
|
||||
|
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 |
|
||||
|
Sitat:
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
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 |
|
||||
|
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
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]="")
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 |
![]() |
| Hugseliste |
| Tags |
| shell array, variable manipulasjon |
| Thread Tools | Søk i denne tråden |
| Visningsmoduser | Ranger denne tråden |
|
|