当前位置: 技术问答>linux和unix
菜鸟求助,关于shell的题,求解
来源: 互联网 发布时间:2017-04-27
本文导语: 1、 文件A.txt中包括如下三行内容: 113605569288 46600055601828820000714073 15540005872TLAQ2 TBAO2 8613900556007 013905561288 46000556900128820000714072 要求:用SHELL或awk将每行的第三到第七的字符取出来,进行排序。 2、 有一文件gcou...
1、 文件A.txt中包括如下三行内容:
113605569288 46600055601828820000714073
15540005872TLAQ2 TBAO2 8613900556007
013905561288 46000556900128820000714072
要求:用SHELL或awk将每行的第三到第七的字符取出来,进行排序。
2、 有一文件gcount1390451.07.内容如下:
13904516688 0 0 1 0 12.00 0.00 1.00 13.00
13904516688 0 0 1 1 2.00 0.01 0.00 2.10
13904516688 0 0 1 2 2.00 10.00 0.00 12.00
要求:用SHELL或awk的总文件的第9列,求平均值。
113605569288 46600055601828820000714073
15540005872TLAQ2 TBAO2 8613900556007
013905561288 46000556900128820000714072
要求:用SHELL或awk将每行的第三到第七的字符取出来,进行排序。
2、 有一文件gcount1390451.07.内容如下:
13904516688 0 0 1 0 12.00 0.00 1.00 13.00
13904516688 0 0 1 1 2.00 0.01 0.00 2.10
13904516688 0 0 1 2 2.00 10.00 0.00 12.00
要求:用SHELL或awk的总文件的第9列,求平均值。
|
1
2
awk '{print substr($0,3,7)}' urfile | sort
2
awk '{s+=$9}END{print s/NR}' urfile
|
$] cat A.txt | sed -e "s/^.{2}(.{5}).*/1/" | sort -g
36055
39055
54000
#!/bin/sh
sum=0
num=0
cat gcount1390451.07 | while read line
do
x=`echo $line | cut -d -f9`
sum=`echo "$sum + $x" | bc -l`
num=$(($num + 1))
echo "sum=$sum" > /dev/shm/avg.tmp
echo "num=$num" >> /dev/shm/avg.tmp
done
. /dev/shm/avg.tmp
echo "sum=$sum"
echo "num=$num"
avg=`echo "$sum / $num" | bc -l`
echo "avg=$avg"
$] ./1.sh
sum=27.10
num=3
avg=9.03333333333333333333