LVL*_*ron 5 awk text-processing replace
在这两种情况下,如何使用 awk 替换括号?
将空括号更改为“无”
192.168.0.24,向上,()
删除括号,只剩下 host.domain.com
192.168.0.25,Up,(host.domain.com)
使用 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
Run Code Online (Sandbox Code Playgroud)
这是一个 awk 程序:
BEGIN {FS=","}
$3 ~ /\(\)/ { printf ($1","$2",None\n"); next }
$3 ~ /\(.+\)/ {
gsub ("\\(", "")
gsub ("\\)", "")
}
{ printf ($0"\n") }
Run Code Online (Sandbox Code Playgroud)
调用它
echo -e "1.8.0.5,Up,()\n1.2.3.4,Up,(host.d.com)" | awk -f ip.awk
Run Code Online (Sandbox Code Playgroud)
例如。