The UNIX and Linux Forums  
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.

Go Back   UNIX och Linux Forum > Upp Forum > Shell-programmering och Skript
.
google unix.com



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

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 denna tråd Rate Thread Visningslägen
  #1 (permalänk)  
Old 07-23-2008
aoussenko aoussenko is offline
Registered User
  
 

Join Date: maj 2008
Inlägg: 119
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
  #2 (permalänk)  
Old 07-23-2008
thana thana is offline
Registered User
  
 

Join Date: Jan 2008
Inlägg: 55
Det bör finnas någon form av SEPERATOR bland de värden
  #3 (permalänk)  
Old 07-23-2008
Sivaswami's Avatar
Sivaswami Sivaswami is offline
Registered User
  
 

Join Date: mars 2007
Plats: Indien
Inlägg: 62
Du kan använda cut kommando inuti en loop.

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

Join Date: Sep 2007
Ort: Tyskland
Inlägg: 2.277
Ja, det skulle vara den 1: a steget.

Skriv till exempel vilja
Kod:
A="842 5 2 64  24 11"
Du kan sedan gå igenom den med till exempel
Kod:
for ELE in ${A}; do
   echo "I want ${ELE] cookies!"
done
  #5 (permalänk)  
Old 07-24-2008
danmero danmero is offline Forum Advisor  
  
 

Join Date: Nov 2007
Ort: 45.48-73.63
Inlägg: 1.421
Citat:
Ursprungligen postat av aoussenko View Post
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
Nästa gång du använda koden taggar.
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
... eller awk lösning:
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
  #6 (permalänk)  
Old 07-24-2008
BMDan BMDan is offline
Registered User
  
 

Join Date: Jul 2008
Ort: BlackMesh Administreras Hosting
Inlägg: 66
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
Vilket ger:

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]="")
Observera att detta kommer att misslyckas av särskilt stora stråkar, bara bryta sig ut ur den och använda ett tag (eller C-stil för ()) istället.

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
  #7 (permalänk)  
Old 07-24-2008
radoulov's Avatar
radoulov radoulov is online now Forum Staff  
missbrukare
  
 

Join Date: Jan 2007
Ort: Варна, България / Milano, Italia
Inlägg: 2860
Med Z-Shell:

Kod:
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 här strängen och luckan:

Kod:
$ a=($(fold -w1<<<$A))
$ printf "%s\n" "${a[0]}"
1
$ printf "%s\n" "${a[3]}"
9
För äldre tankar:

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

Komihåglista

Taggar
skal array, variabel otillbörlig

Thread Tools Sök i denna tråd
Sök i denna tråd:

Avancerad sökning
Visningslägen Betygsätt denna tråd
Betygsätt denna tråd:

Utstationering Regler
Du får inte efter nya trådar
Du får inte efter svar
Du får inte skicka bilagor
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG] kod
HTML-koden är Av
Trackback är
Pingbacks är
Refbacks är




Alla tider är GMT -4. Klockan är nu 05:06.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Översättningar Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX och Linux Forum Innehållet upphovsrättsskyddat © 1993-2009. All Rights Reserved.Ad förvaltning RedTyger

Content Relevant webbadresser från vBSEO 3.2.0