iNfErNeR Δημοσ. 19 Απριλίου 2010 Δημοσ. 19 Απριλίου 2010 Έχω διαφορα αρχεία τα οποια συμπεριλαμβάνουν 4 στήλες με format ip day month year πχ 111.111.01.2 Mon Jun 2008. Οι λίστες έχουν περίπου 100 σειρές με στοιχεια που επαναλαμβάνονται όπως το ip. Εγώ θέλω να βρω την ip που έχει εμφανιστεί τις περισσότερες φορες στο κάθε αρχείο. > awk ' { print $1 }' filename | sort Βλέπω τις ip που επαναλαμβάνονται τις περισσότερες φορες αλλα δεν ξέρω πως μπορώ να επιλέξω μονο τις συγκεριμένες ip. Οποιαδήποτε βοήθεια ευπρόσδεχτη
pinball_elf Δημοσ. 19 Απριλίου 2010 Δημοσ. 19 Απριλίου 2010 Δεν ξέρω εάν θέλεις να λύσεις το πρόβλημα σου μόνο με awk, αλλά με το παρακάτω bash script κάνεις την δουλειά σου: > #!/bin/bash IPADDRESSES=`awk ' { print $1 }' filename | sort` for i in $IPADDRESSES; do count=0 if [ "$i" = "$LASTIPADDRESS" ]; then continue; fi for j in $IPADDRESSES; do if [ "$i" = "$j" ]; then count=`expr $count + 1` fi done LASTIPADDRESS=$i echo "ipaddress $i repeated $count times" done Υ. Γ.: Τώρα που είδα κάλυτερα την εκφώνηση, το παραπάνω bash script δεν σου λύνει ακριβώς το πρόβλημα σου. Απλά σου μετράει τις συχνότητες των ip addresses σε ένα αρχείο. Οπότε: > #!/bin/bash IPADDRESSES=`awk ' { print $1 }' filename | sort` first_time=true for i in $IPADDRESSES; do count=0 if [ "$i" = "$LASTIPADDRESS" ]; then continue; fi for j in $IPADDRESSES; do if [ "$i" = "$j" ]; then count=`expr $count + 1` fi done LASTIPADDRESS=$i # echo "ipaddress $i repeated $count times" if [ "$first_time" = "true" ]; then first_time=false max_count=$count max_ipaddress=$i else if [ `expr $max_count \< $count` = 1 ]; then max_count=$count max_ipaddress=$i fi fi done echo "ipaddress $max_ipaddress repeated $max_count times"
C6WGMN Δημοσ. 19 Απριλίου 2010 Δημοσ. 19 Απριλίου 2010 Έστω πως έχεις το αρχείο με τα IP σε κάθε γραμμή. > for i in `sort arxeio | uniq`; do echo `grep -c $i arxeio` - $i; done
iNfErNeR Δημοσ. 19 Απριλίου 2010 Μέλος Δημοσ. 19 Απριλίου 2010 Ευχάριστο πολύ για τις απάντησης σας. pinball_elf το script σου δουλεύει άψογα. Aκριβώς ότι έψαχνα! 1000 ευχαριστώ!
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.