我有一個文件,它在第一列有數字。查找最大值和最小值並從文件中打印行的Unix shell
100,red
101,blue
102,black
我應該編寫一個shell腳本,它將打印最大和最小數字的行。
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
這就是我迄今爲止的嘗試尋找最大。
一個非常 「昂貴」 的方式來解析你的線條和爲什麼你在看......'awk'{print $ 3}''......你只有2個元素? @sudo_O是對的,awk在這裏最好,但是如果你只是想學習shell編碼,那麼把它減少到'while fir sec;如果[$ fir .... done
shellter
2013-04-25 10:43:48
'max'被設置在由管道引發的子shell中。只需改爲'while while read LINE;做...;完成
chepner
2013-04-25 14:03:15