ARP 데이터를 구문 분석하고 유용한 정보를 얻으려면 이전 스크립트를 업데이트하고 있습니다. 새로운 라우터를 추가했고 라우터에서 ARP 데이터를 가져올 수는 있지만 새로운 형식입니다. 나는 "zTempMonth"라는 파일을 얻었습니다.이 파일은 정상화 된 새로운 데이터 형식으로 컴파일해야하는 두 라우터 세트의 모든 arp 데이터입니다. 아래 코드 줄은 필자가 논리적으로 필요로하는 것을 수행한다. 그러나 매우 느리다. 이전에 스크립트가 20-30 분이 걸렸던 곳에서이 루프를 실행하는 데 며칠이 걸릴 것이다. 속도를 높이거나 속도를 줄이는 방법이 있습니까? Bash 스크립트가 매우 느림
는echo "Parsing zTempMonth"
while read LINE
do
wc=`echo $LINE | wc -w`
if [[ $wc -eq "6" ]]; then
true
out=$(echo $LINE | awk '{ print $2 " " $4 " " $6}')
echo $out >> zTempMonth.tmp
else
false
fi
if [[ $wc -eq "4" ]]; then
true
out=$(echo $LINE | awk '{ print $1 " " $3 " " $4}')
echo $out >> zTempMonth.tmp
else
false
fi
done < zTempMonth
루프를 참조하십시오. awk 또는 범용 프로그래밍 언어로 이것을 다시 작성할 것을 고려할 수 있습니다. – kojiro
(쓸데없는) 외부 명령에 포크가 너무 많습니다. 많은 (쓸모없는) 파일을 열고 닫는 것. 게다가, 한 줄씩 파일을 읽는 while 루프는 Bash에서 느리게 악명이 높습니다. 당신의 스타일이 끔찍하다는 점을 언급하지 않았습니다. 당신이 자극적으로 이것을 사용하지 않기를 바랍니다. –
그곳에는 '사실'과 '거짓'이란 단어가 무엇입니까? 필자는 그들이 스크립트가 '$로 반영 할 것'이라고 마지막으로 알았지 만, 성공/실패를 가져 오는 아주 난해한 방법입니다. – kojiro