Performance 在ksh中加速回声

Performance 在ksh中加速回声,performance,echo,ksh,Performance,Echo,Ksh,我已经用KSH编写了下面的代码,但是运行生成.tmp1需要一段时间,在echo$行| cut-f2,4-d”“>[file]命令中速度很慢,但我不知道为什么 我猜这是因为回声,但我不知道;我不知道如何重新编写它来加快速度 echo "Generating on zTempDay$count.tmp" while read LINE do #Use Cut to trim down to right colums #cut -b 11-26 $LINE #mac= cut -b 39-52 $L

我已经用KSH编写了下面的代码,但是运行生成
.tmp1
需要一段时间,在
echo$行| cut-f2,4-d”“>[file]
命令中速度很慢,但我不知道为什么

我猜这是因为回声,但我不知道;我不知道如何重新编写它来加快速度

echo "Generating on zTempDay$count.tmp"
while read LINE
do
#Use Cut to trim down to right colums
#cut -b 11-26 $LINE
#mac=  cut -b 39-52 $LINE
#vlan= cut -b 62 $LINE
#This line pegs out the CPU - want to know why
echo $LINE | cut -f 2,4 -d " " >> zTempDay$count.tmp1
update_spinner
done < zTempDay$count.tmp
#Remove 'Incomplete' Enteries
#numOfIncomplete=grep "Incomplete" zTempDay$count.tmp1 | wc -l
sed -e "/Incomplete/d" zTempDay$count.tmp1 > zTempDay$count.tmp2
#Use sort to sort by MAC
#Use uniq to remove duplicates
sort +1 -2 zTempDay$count.tmp2 | uniq -f 1 > zTempDay$count.tmp3

#Format Nicely
tr ' ' '\t' < zTempDay$count.tmp3 > zTempDay$count.tmp4
##Want to put a poper progress bar in   if program remains slow
#dialog --gauge "Formatting Data: Please wait" 10 70 0
#bc 100*$count/$maxDaysInMonth
预期产品(使用IP和MAC之间的选项卡)


多亏了Sheller的帮助,它的效果非常好。谢谢!:)

awk'{print$2”\t“$4}”infle | sort+1-2>outfile
?使用“更多”在
|排序…
之后添加您需要的任何其他内容。进度条只会让你慢下来。要有信心祝你好运。非常感谢你!!!这确实使它快了很多。我仍然有几行要清除(示例数据中没有显示),但我认为我可以使用SED查找并删除它们。我同意进度条会让我慢下来;如果程序速度足够快,那么这一点就没有意义了。:)但为什么一开始就很慢呢?echo只是一个非常慢的命令吗?在使用Unix脚本时,您必须学会计算正在创建的进程数。对于我的脚本,有一个进程,对于您的脚本,有一个主进程(while循环),并且每读取一行数据至少有一个进程。虽然您可以使用sed清理数据,但使用awk代码(如
awk'/Dont\u process/next)几乎肯定可以得到相同的结果/DontProcess2/next;{打印$2“\t”$4}'填充>输出文件
。当然,您必须根据需要修改排除目标“DontProcess2”。也可以使用reg表达式来排除。发布一些samp数据哦,哇,这解释了为什么CPU会被锁定。我处理的文件每个文件的大小为200000-900000行。互联网129.82.171.88 0不完整的ARPA是坏数据,但使用“/complete/”{next};在awk内部似乎已经解决了这个问题。。。其余的坏数据被重新使用,之后我会严重损坏数据。:)awk是你的朋友。请参阅www.grymoire.com/Unix/Awk.html上的教程和Awk上的所有内容。祝你好运
Internet  10.174.199.193          -   8843.e1a3.1b40  ARPA   Vlan####
Internet  10.1.103.206          110   f4ce.46bd.e2e8  ARPA   Vlan####
10.174.199.193      8843.e1a3.1b40
10.1.103.206        f4ce.46bd.e2e8
*awk '/Incomplete/ {next} ; 
{print $2 "\t" $4}' zTempDay01.tmp | sort +1 -2  | uniq -f 1 > outfile*