读书人

初学者关于shell的题求解

发布时间: 2013-10-29 12:07:57 作者: rapoo

菜鸟求助,关于shell的题,求解
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列,求平均值。
shell awk
[解决办法]


$] 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

[解决办法]
1
awk '{print substr($0,3,7)}' urfile 
[解决办法]
sort

2
awk '{s+=$9}END{print s/NR}' urfile

读书人网 >UNIXLINUX

热点推荐