AWK를 처음 사용하기 때문에 AWK에서 몇 가지 기본적인 아이디어를 얻었습니다. 나는 예를 들어, 파일에 을 중복을 제거하려면 :AWK를 사용하여 이러한 중복을 제거하는 방법은 무엇입니까?
0008.ASIA. NS AS2.DNS.ASIA.CN.
0008.ASIA. NS AS2.DNS.ASIA.CN.
ns1.0008.asia. NS AS2.DNS.ASIA.CN.
www.0008.asia. NS AS2.DNS.ASIA.CN.
anish.asia NS AS2.DNS.ASIA.CN.
ns2.anish.asia NS AS2.DNS.ASIA.CN
ANISH.asia. NS AS2.DNS.ASIA.CN.
이, 샘플 파일에서 해당 나는이 같은 결과를 얻었다이 명령을 사용하여
awk 'BEGIN{IGNORECASE=1}/^[^ ]+asia/ { gsub(/\.$/,"",$1);split($1,a,".")} length(a)==2{b[$1]++;}END{for (x in b)print x}'
0008.ASIA .
anish.asia.
ANISH.asia
하지만 내가 원하는 같은 출력이
008.ASIA
anish.asia
또는
008.ASIA
ANISH.asia
어떻게 중복 이런 종류의를 제거하는 방법은 무엇입니까? 아니시 kumar.V이 즉시 reponse에 대한
덕분에, 사실 내가 bash는 완전한 스크립트를 썼다 사전 에
덕분에, 지금은 마지막 단계입니다. 방법 만 지금은 AWK 나를 위해 더 나은 사용하므로, 어떠한 제안을 고유 한 값을 얻는 방법을 검색하고이 부분에 그 :-(에 그
awk '/^[^ ]+ASIA/ && !_[$1]++{print $1; tot++}END{print "Total",tot,"Domains"}' $MainPath/$today.asia > $RootPath/zonefile/$today.asia
에서
#!/bin/bash
current_date=`date +%d-%m-%Y_%H.%M.%S`
today=`date +%d%m%Y`
yesterday=`date -d 'yesterday' '+%d%m%Y'`
RootPath=/var/domaincount/asia/
MainPath=$RootPath${today}asia
LOG=/var/tmp/log/asia/asiacount$current_date.log
mkdir -p $MainPath
echo Intelliscan Process started for Asia TLD $current_date
exec 6>&1 >> $LOG
#################################################################################################
## Using Wget Downloading the Zone files it will try only one time
if ! wget --tries=1 --ftp-user=USERNAME --ftp-password=PASSWORD ftp://ftp.anish.com:21/zonefile/anish.zone.gz
then
echo Download Not Success Domain count Failed With Error
exit 1
fi
###The downloaded file in Gunzip format from that we need to unzip and start the domain count process####
gunzip asia.zone.gz > $MainPath/$today.asia
###### It will start the Count #####
awk '/^[^ ]+ASIA/ && !_[$1]++{print $1; tot++}END{print "Total",tot,"Domains"}' $MainPath/$today.asia > $RootPath/zonefile/$today.asia
awk '/Total/ {print $2}' $RootPath/zonefile/$today.asia > $RootPath/$today.count
a=$(< $RootPath/$today.count)
b=$(< $RootPath/$yesterday.count)
c=$(awk 'NR==FNR{a[$0];next} $0 in a{tot++}END{print tot}' $RootPath/zonefile/$today.asia $RootPath/zonefile/$yesterday.asia)
echo "$current_date Count For Asia TlD $a"
echo "$current_date Overall Count For Asia TlD $c"
echo "$current_date New Registration Domain Counts $((c - a))"
echo "$current_date Deleted Domain Counts $((c - b))"
exec >&6 6>&-
cat $LOG | mail -s "Asia Tld Count log" [email protected]
을 파이썬을 호출합니다. 감사합니다 다시 즉각적인 응답을.
죄송합니다. 여기에 게시 된 전체 Bash 스크립트를 추가하면 실제로 상황이 명확 해지지 않습니다. 질문을 작은 예제와 현재 직면 한 문제에 대한 설명으로 줄일 수 있습니까? –
안녕하세요 지금 문제는 내 전나무 게시물 혼자, 난 그냥 여기에 내가 스크립트를 쓴 ... AWK 자체를 사용하여 모든 가능성과 나는 많은 생각이 파이썬 아니에요 .. –
당신의 질문을 정리할 수 있습니까? 그것은 정말로 많은 도움이 될 것입니다. –