IPクリーンアップのためのAWKインターバル表現

IPクリーンアップのためのAWKインターバル表現

オンラインで提供してくれた数々のアイテムやマニュアルに感謝します。

効果がありますが、十分効果的ですか?
同意しますか?
{私が知っている限り、ログ+ - 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

おすすめ記事