awkを使用して角かっこを置き換えますか?

awkを使用して角かっこを置き換えますか?

awkを使用して両方の場合、角括弧をどのように変更できますか?

  1. 空の括弧を「None」という単語に変更します。

    192.168.0.24,上,()

  2. 角かっこを削除すると、host.domain.comだけが残ります。

    192.168.0.25,上記,(host.domain.com)

ベストアンサー1

sedを使用してください:

echo -e "192.168.0.25,Up,()\n1.2.3.4,Up,(host.domain.com)" | 
    sed 's/()/None/g;s/[()]//g'
192.168.0.25,Up,None
1.2.3.4,Up,host.domain.com

これはawkプログラムです:

BEGIN {FS=","}
$3 ~ /\(\)/   { printf ($1","$2",None\n"); next }
$3 ~ /\(.+\)/ { 
                  gsub ("\\(", "")
                  gsub ("\\)", "")
              }
              { printf ($0"\n") }

呼ぶ

echo -e "1.8.0.5,Up,()\n1.2.3.4,Up,(host.d.com)" | awk -f ip.awk 

例えば。

おすすめ記事