온라인으로 제공해주신 수많은 항목과 매뉴얼에 감사드립니다.
효과가 있지만 충분히 효과적입니까?
동의하시나요?
{내가 아는 한, 로그 +- 5,000개 항목을 읽는 것이 빠릅니다.}
"myAwk3.txt" 파일의 소스 데이터:
type,Srv-1,2016-04-16 23:59:02,Name1,1234567890abcdef123456789bbbbb00,(10.90.178.4:1004)
type,Srv-1,2016-04-16 23:59:24,<N@me> (-) [==]1 23,1234567890abcdef123456789bbbbb22,(192.10.196.74:65005)
현재 작동하는 코드:
awk --re-interval -F"," 'BEGIN{OFS=",";}{
patPort=":[0-9]{1,5}"; # Will find ":1" to ":65xxx"
IpPort=$6 # Field needed, (192.10.196.74:65005)
IpOnly=gensub(patPort, "",1,$6); # Remove pattern
IpOnly=gensub(/[(]/, "",1,IpOnly); # Remove "(" , With sed: sed 's/[()]//g'
IpOnly=gensub(/[)]/, "",1,IpOnly); # Remove ")"
print IpPort, IpOnly; # Show old and new data
} ' myAwk3.txt
결과:
(10.90.178.4:1004),10.90.178.4
(192.10.196.74:65005),192.10.196.74
답변1
정규식 일치 및 교체 오버헤드를 제거하는 것이 좋습니다.
awk '
BEGIN { FS = OFS = "," }
{
split($6, a, ":");
print substr(a[1], 2);
}
' myAwk3.txt