![]() |
Hej och välkommen från USA till UNIX och Linux Forum! Tack för ditt besök och gå med i vår globala gemenskapen.
|
|
google unix.com
|
|||||||
| Forum | Registrera | Forum Regler | Länkar | Album | FAQ | Medlemslista | Kalender | Söka | Dagens inlägg | Markera forum som lästa |
| Shell-programmering och Skript Post frågor om ksh, CSH, SH, bash, PERL, PHP, sed, awk och andra skalskript och skal skriptspråk här. |
Mer UNIX och Linux Forum Ämnen Du kan hitta Helpful
|
||||
| Tråd | Thread Starter | Forum | Svar | Senaste Inlägg |
| Läs csv i Hash array? | kinmak | Shell-programmering och Skript | 1 | 05-07-2008 10:35 |
| Hur man läser från txt-fil och använda den som en array | pinky | UNIX for Dummies Frågor & Svar | 4 | 10-08-2007 12:18 |
| skapa array innehav tecken från sring sedan echo matris. | rorey_breaker | Shell-programmering och Skript | 5 | 09-28-2007 08:42 |
| Är samtidigt läsa loop - inre läsa lyftas fel ingång | dkieran | Shell-programmering och Skript | 2 | 05-14-2007 03:02 |
| Hur kan jag läsa array element dynamiskt i bash? | haisubbu | UNIX for Dummies Frågor & Svar | 1 | 08-29-2006 02:19 |
![]() |
|
|
LinkBack | Thread Tools | Sök i denna tråd | Rate Thread | Visningslägen |
|
|
|
||||
|
hur man läser en var värdet i matrisen
Hej
Jag behöver läsa ett värde av variabeln i rad så varje tecken / siffra kommer att bli en rad inslag, till exempel: A \u003d 147921231432545436547568678679870 Den resulterande matrisen bör hålla varje siffra som en del. Tack så mycket för all hjälp-A |
|
||||
|
Citat:
Här är bash lösning: Kod:
$ 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
Kod:
set -- $(awk -v v="$A" 'BEGIN{split(v,a,"");for (i=1;i<= length(v);i++) printf "%s ",a[i]}')
Senast redigerad av danmero; 07-24-2008 vid 12:16.. Orsak: lägga awk lösning |
|
||||
|
Jag gillar det här lite bättre än danmero exempel, som den faktiskt gör det i en matris:
Kod:
for i in $(seq 0 $((${#string}-1))); do array[$i]=${string:$i:1}; done
Kod:
$ 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]="")
Om det är vad du letar efter kan du också skapa samma effekt som danmero s script med sed: Kod:
$ 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 Senast redigerad av BMDan; 07-24-2008 vid 02:09.. Anledning: Lägg sed lösning |
![]() |
| Komihåglista |
| Taggar |
| skal array, variabel otillbörlig |
| Thread Tools | Sök i denna tråd |
| Visningslägen | Betygsätt denna tråd |
|
|