我有一个文件,第一列是数字。
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 read fir sec ; do if [ $fir .... done < file.txt
。祝你好运。 - shelltermax
在由管道引起的子shell中被设置。只需更改为while read LINE; do ...; done < file.txt
。但正如其他人指出的那样,这非常昂贵。 - chepner