http://0-0.latam.corp.yahoo.com/ 6656
http://0-0.latam.corp.yahoo.com/nonEtAk 6670
http://1.avatar.yahoo.com/ 6644
http://1.avatar.yahoo.com/nonEtAk 6858
여기서 첫 번째 열에는 URL이 나열되고 두 번째 열에는 응답 길이가 나열됩니다. "/nonEtAk"는 존재하지 않는 경로이고 "/"는 기존 경로입니다.
존재하지 않는 경로에 대한 응답을 기존 경로에 대한 응답과 비교하여 거짓 긍정 응답을 제공하지 않는 URL을 추출하고 싶습니다. 그래서 저는 이것이 응답 길이를 비교함으로써 이루어질 수 있다는 것을 발견했습니다. 그래서 데이터는 이렇습니다. 그래서 도메인이 동일한 경우 두 번째 열을 비교하여 도메인으로 출력하고 싶습니다.
0-0.latam.corp.yahoo.com/
예를 들어, 로 주어진 길이 6656
와 위에 0-0.latam.corp.yahoo.com/nonEtAk
주어진 길이입니다 6670
. 차이는 14입니다. 그래서 그것은 거짓 긍정입니다.
1.avatar.yahoo.com
그리고 차이가 200+인 경우 . 그래서 흥미로운 내용이 있습니다. 따라서 위 데이터를 전달하면 결과는 다음과 같을 것으로 예상됩니다.http://1.avatar.yahoo.com
답변1
승인을 위한 특정 기준점을 제공하지 않았으므로 차이에 따라 순위를 매기는 것이 좋습니다.
awk '{
if ($1 ~ /nonEtAk/) {ss=substr($1,1,length($1)-7); rank[ss]+=$2}
else rank[$1]-=$2
} END {
for (key in rank) { print key, "difference is", rank[key] }
}' <(sed -e '/^$/d' file) | sort -r -k4
산출
http://1.avatar.yahoo.com/ difference is 214
http://0-0.latam.corp.yahoo.com/ difference is 14
송곳
빈 줄을 모두 삭제하고 입력하세요.awk
awk '' <(sed -e '/^$/d' file)
존재하다awk
첫 번째 필드에 "nonEtAk"가 포함된 경우 도메인 이름 하위 문자열을 가져오고(마지막 7자를 제거하여) $2의 값을 도메인 이름으로 입력된 연관 배열(순위)에 추가합니다.
if ($1 ~ /nonEtAk/) {ss=substr($1,1,length($1)-7); rank[ss]+=$2}
...그렇지 않으면 도메인 이름으로 키가 지정된 배열 요소에서 $2를 뺍니다.
else rank[$1]-=$2
...파일을 읽은 후
`} END {`
...배열을 반복하고 인쇄합니다.
for (key in rank) { print key, "difference is", rank[key] }
...마지막으로 차이점을 기준으로 내림차순으로 정렬합니다.
| sort -r -k4