2012-03-05 7 views
0

아래 코드는 KSH에서 작동하지만 잠시 작업을 수행하면 .tmp1 명령이 실행됩니다. echo $LINE | cut -f 2,4 -d " " >> [file] 명령에서 느리지 만 그 이유는 알 수 없습니다.ksh에서 에코 속도 향상

나는 그것이 echo에 의한 것이기 때문에 나는 추측하고있다. 그러나 나는 모른다. 속도를 높이기 위해 다시 쓰는 방법을 모르겠습니다. (IP와 MAC 사이의 탭을 사용하여)

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 

예 데이터

Internet 10.174.199.193   - 8843.e1a3.1b40 ARPA Vlan#### 
Internet 10.1.103.206   110 f4ce.46bd.e2e8 ARPA Vlan#### 

의도 된 제품 Shellter의 도움에 매력 덕분에 같은

10.174.199.193  8843.e1a3.1b40 
10.1.103.206  f4ce.46bd.e2e8 
+0

awk '{print $ 2 "\ t"$ 4}'infile | 정렬 +1 -2> outfile'? 더 많은 '|'를 사용하여'| sort ... '다음에 필요한 다른 것들을 추가하십시오. 진행률 표시 줄로 인해 속도가 느려집니다. 믿음을 가지다! ;-) 행운을 빕니다. – shellter

+0

대단히 감사합니다 !!! 그것은 확실히 좋은 거래를 더 빨리 만들어줍니다. 나는 여전히 몇 줄의 퍼지 (예 : 슬프게도 예제 데이터에 표시되지 않음)가 있지만 SED를 사용하여 찾을 수 있다고 생각합니다. 진행률 표시 줄로 인해 속도가 느려지는 것에 동의합니다. 프로그램의 속도가 충분히 빨라지면 문제는 해결되지 않습니다. :) 하지만 왜 시작하는 것이 느 렸니? 에코는 단지 아주 느린 명령입니까? – Robert

+0

유닉스 스크립팅에서 작업 할 때, 생성하는 프로세스의 수를 세는 법을 배워야한다. 내 스크립트에는 1 개의 프로세스가 있고, 스크립트에는 마스터 프로세스 (while 루프)가 있고 읽는 데이터 행 당 적어도 하나의 프로세스가 있습니다. sed를 사용하여 데이터를 정리할 수 있지만 awk/Dont_process/next와 같은 awk 코드를 사용하면 거의 동일한 결과를 얻을 수 있습니다./DontProcess2/next; {print $ 2 "\ t"$ 4} 'infile> outfile'. 물론 필요에 따라 제외 대상 'DontProcess2'를 수정해야합니다. 또한 reg-expressions을 사용하여 제외 할 수 있습니다. Post samp data – shellter

답변

0
*awk '/Incomplete/ {next} ; 
{print $2 "\t" $4}' zTempDay01.tmp | sort +1 -2 | uniq -f 1 > outfile* 

작품. 고맙습니다! :)