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
awk '{print $ 2 "\ t"$ 4}'infile | 정렬 +1 -2> outfile'? 더 많은 '|'를 사용하여'| sort ... '다음에 필요한 다른 것들을 추가하십시오. 진행률 표시 줄로 인해 속도가 느려집니다. 믿음을 가지다! ;-) 행운을 빕니다. – shellter
대단히 감사합니다 !!! 그것은 확실히 좋은 거래를 더 빨리 만들어줍니다. 나는 여전히 몇 줄의 퍼지 (예 : 슬프게도 예제 데이터에 표시되지 않음)가 있지만 SED를 사용하여 찾을 수 있다고 생각합니다. 진행률 표시 줄로 인해 속도가 느려지는 것에 동의합니다. 프로그램의 속도가 충분히 빨라지면 문제는 해결되지 않습니다. :) 하지만 왜 시작하는 것이 느 렸니? 에코는 단지 아주 느린 명령입니까? – Robert
유닉스 스크립팅에서 작업 할 때, 생성하는 프로세스의 수를 세는 법을 배워야한다. 내 스크립트에는 1 개의 프로세스가 있고, 스크립트에는 마스터 프로세스 (while 루프)가 있고 읽는 데이터 행 당 적어도 하나의 프로세스가 있습니다. sed를 사용하여 데이터를 정리할 수 있지만 awk/Dont_process/next와 같은 awk 코드를 사용하면 거의 동일한 결과를 얻을 수 있습니다./DontProcess2/next; {print $ 2 "\ t"$ 4} 'infile> outfile'. 물론 필요에 따라 제외 대상 'DontProcess2'를 수정해야합니다. 또한 reg-expressions을 사용하여 제외 할 수 있습니다. Post samp data – shellter