Ich habe eine Datei, die Zahlen in der ersten Spalte hat.Unix Shell finde die Max und Min Werte und drucke die Zeile aus einer Datei
100,red
101,blue
102,black
Ich sollte ein Shell-Skript schreiben, dass es die Zeile mit den Max- und Min-Zahlen drucken wird.
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
Dies ist, was ich bisher versucht, die max.
einen sehr "teuer" Weg, um Ihre Linien zu analysieren und warum du schaust dir '... awk '{print $ 3}'' ... du hast nur 2 Elemente? @sudo_O ist richtig, awk ist hier am besten, aber wenn du nur versuchst Shell-Coding zu lernen, dann reduziere es auf 'while read fir sec; tue, wenn [$ fir .... done
shellter
'max' wird in einer von der Pipeline induzierten Subshell gesetzt. Ändere einfach zu 'while read LINE; machen ...; Fertig
chepner