[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