[Linux-Biella] BASH Trasformare una lista in un array

vallini.daniele a bilug.linux.it vallini.daniele a bilug.linux.it
Ven 5 Apr 2013 21:46:39 CEST


Il 02/04/2013 20:55, Del Vecchio Lorenzo ha scritto:
> In una variabile ho l'output di una ls -1.
> Ecco come la dichiaro:
>
> TRK=`ls -1 ./audio_*.wav`;
>
> Devo trasformare in un array l'output.
> Ci sto provando con il deguente codice:
>
> IFS="\n";
> TRKArray=($TRK);
> for ((i=0; i<${#TRKArray[@]}; ++i));
> do
>      array[$i]=${TRKArray[$i]};
> 	echo $array[3];
> 	#LNG=${#TRKArray[$i]};
> 	#echo $LNG;
> done
>
> IFS=$OIFS;
>
> Ma non funziona! il risultato è sempre una variabile contenente una lista!
>
> Mi sapete aiutare?
> Grazie...
>
>    
Ci sono errori nella sintassi ed un inutile ciclo for per popolare l'array

Prova cosi':

TRK=(`ls -l ./audio_*.wav`);  # questo e' l'array ma devi poi definire 
il separatore di campo per analizzarlo

  IFS=$'\n';                              #questo definisce newline come 
separatore di campo

  echo ${TRK[3]}                   #questa e' ad esempio l'estrazione 
della quarta linea, quarto elemento dell'array

-- 
Daniele



Maggiori informazioni sulla lista Linux