Date: Tue, 18 Apr 2017 21:09:17 +0200 From: Andreas Perstinger <andipersti@gmail.com> To: freebsd-questions@freebsd.org Subject: Re: awk help Message-ID: <b7c0da1d-e659-1430-9530-37993f9182b3@gmail.com> In-Reply-To: <aed3ad4b-7013-471f-8b11-bc717230cff0@gmail.com> References: <58F25A01.1060208@gmail.com> <7951DF71-5CD3-4B53-9CB4-13CAA8945983@huiekin.org> <58F4CD14.7090008@gmail.com> <c95e03d2-986d-3c3c-198a-a28ab862dc70@gmail.com> <58F53EEA.2030206@gmail.com> <7b381f8f-e2a5-26ea-075e-96ae35efb25d@rogers.com> <58F61027.3090100@gmail.com> <aed3ad4b-7013-471f-8b11-bc717230cff0@gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
(Sorry for messing up parts of the quoting in my former mail.) On 2017-04-18 19:40, Andreas Perstinger wrote: > I think awk is the better tool for your task but you could still > simplify your shell script a little bit: After hitting the send button I realized that there is a simpler solution using a classical Unix pipe: #!/bin/sh added_date="`date +%Y%m%d`" hits_rpt="hits_rpt" hits_new="hits.yes" hits_no="hits.no" truncate -s 0 $hits_rpt $hits_new $hits_no ippool -l -d -m probing_ips > $hits_rpt 2> /dev/null tail -n +4 $hits_rpt | # start at 4th line paste - - | # join two consecutive lines sed -e 's:^ *::' -e 's:/32::' | # remove spaces at the beginning # and "/32" suffix from IP address cut -w -f 2,4 | # extract IP and Hits from combined line # (at 2nd and 4th field) while read ip hits # read IP and Hits from each line do # and do your work if [ "$hits" -gt 0 ]; then echo "$added_date ${ip};" >> $hits_new fi echo "$hits ${ip};" >> $hits_no done exit 0 If the "ippool" uses tabs in the output just add "tr '\t' ' '" between the "paste" and "sed" step. Bye, Andreas
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?b7c0da1d-e659-1430-9530-37993f9182b3>