我有很多输入行,如下所示,我希望最终得到与此类似的输出
host tsclient010.tsclient {
option host-name "tsclient010.tsclient";
hardware ethernet 00E0C56BF96D;
fixed-address 192.168.246.10;
}
每个输入。但是我遇到了静态内容包含 {}
的问题。
echo "192.168.246.10 00E0C56BF96D tsclient010.tsclient" | awk '{print
host $3 {
option host-name "$3";
hardware ethernet $2;
fixed-address $1;
}
}'
输出:
awk: cmd. line:2: host $3 {
awk: cmd. line:2: ^ syntax error
我试图通过 '\{'
对其进行转义,但没有成功。
问题
有谁知道如何转义所需的字符?
最佳答案
您不需要转义大括号。您需要引用它们并转义双引号。
awk '{printf "\
host %s {\
option host-name \"%s\";\
hardware ethernet %s;\
fixed-address %s;\
}\n", $3, $3, $2, $1
}'
关于linux - 如何在 awk 中转义 {}?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53103301/