RISOLTO [BASH] Lettura variabili

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Avatar utente
faustomr
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 840
Iscrizione: venerdì 28 marzo 2008, 13:20

RISOLTO [BASH] Lettura variabili

Messaggio da faustomr »

Salve a tutti.

Ho un problema di sintassi con bash. Ho un file che, a priori, non so quanto è lungo, ma che so contenere solo interi in una colonna.
Ho bisogno di assegnare questi valori ad un array in modo da poterne trovare il massimo.

Per ora sono arrivato a questo (non sono ancora al punto di cercare il massimo tra tutti i valori):

Codice: Seleziona tutto

#!/bin/bash


row=$(wc -l file.txt | awk '{print $1}')
echo "Number of rows:" $row

for i in `seq 1 $row`; do
  read ${a[$i]}<file.txt
  echo $i ${a[$i]}
done

exit
Ovviamente c'è qualche errore. Non so se di concetto, o di sintassi. Qualcuno mi sa aiutare?
Grazie in anticipo
Ultima modifica di faustomr il martedì 8 aprile 2014, 16:43, modificato 1 volta in totale.
Avatar utente
crap0101
Rampante Reduce
Rampante Reduce
Messaggi: 8242
Iscrizione: martedì 30 ottobre 2007, 6:33
Desktop: LXDE
Distribuzione: Ubuntu 18.04.1 LTS
Sesso: Maschile
Località: TO
Contatti:

Re: [BASH] Lettura variabili

Messaggio da crap0101 »

il read non va bene, btw:

Codice: Seleziona tutto

sort -gr FILE | head -n1
http://www.gnu.org/ http://boinc.berkeley.edu/ http://www.python-it.org/
- Ricorda le ultime parole di suo padre: «Sta' alla larga dalle chiese, figlio. La sola cosa per cui hanno la chiave è il merdaio. E giurami che non porterai mai un distintivo della legge» - W.S. Burroughs
Avatar utente
vaeVictis
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 4703
Iscrizione: venerdì 27 luglio 2012, 17:58
Desktop: Gnome
Distribuzione: Ubuntu 20.04 64bit

Re: [BASH] Lettura variabili

Messaggio da vaeVictis »

Di sicuro la soluzione proposta da crap0101 è ottima e il mio intervento non entra nel merito del suo suggerimento, ma è un'indicazione su come leggere un file in bash.

Detto questo, per leggere un file ti stai "complicando" la vita.
Puoi tranquillamente leggere un file di cui non conosci a priori la lunghezza con un ciclo while:

Codice: Seleziona tutto

while read line; do
    ...
    ...
done < path_del_file
Al posto dei puntini metti le tue "manipolazioni" sulla riga letta, che hai nella variabile "line".
Ultima modifica di vaeVictis il martedì 8 aprile 2014, 16:50, modificato 1 volta in totale.
Pirates arrrrrrrrrrr awesome!!!
«I fear not the man who has practiced 10000 kicks once,
but I fear the man who has practiced one kick 10000 times.»
Avatar utente
faustomr
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 840
Iscrizione: venerdì 28 marzo 2008, 13:20

Re: [BASH] Lettura variabili

Messaggio da faustomr »

Grazie a entrambi! Due suggerimenti molto utili. :)
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: Google [Bot] e 2 ospiti