Ho un file che ha numeri nella prima colonna.shell Unix che trova i valori massimo e minimo e stampa la linea da un file
100,red
101,blue
102,black
Dovrei scrivere uno script di shell che stamperà la riga con i numeri max e min.
max=0
cat file.txt|while read LINE
do
fir=`echo $LINE|awk '{print $2}'`
sec=`echo $LINE|awk '{print $3}'`
if [ $fir -gt $max ]; then
max=$fir
fi
if [ $sec -gt $max ];then
max=$sec
fi
done
grep $max file.txt
Questo è quello che ho provato finora per trovare il massimo.
un modo molto "costoso" per analizzare le linee e il motivo per cui sono stai guardando '... awk '{print $ 3}'' ... hai solo 2 elementi? @sudo_O ha ragione, awk è il migliore qui, ma se stai solo provando a imparare la codifica della shell, ridurla a 'mentre leggi fir sec; fai se [$ fir .... fatto
shellter
'max' viene impostato in una sottoshell indotta dalla pipeline. Basta cambiare in 'mentre leggi LINE; fare ...; fatto
chepner