我有很多输入行,如下所示,我想得到一个类似于此的输出
host tsclient010.tsclient {
option host-name "tsclient010.tsclient";
hardware ethernet 00E0C56BF96D;
fixed-address 192.168.246.10;
}
Run Code Online (Sandbox Code Playgroud)
前面的投入.但是我遇到了静态内容包含的问题{}.
echo "192.168.246.10 00E0C56BF96D tsclient010.tsclient" | awk '{print
host $3 {
option host-name "$3";
hardware ethernet $2;
fixed-address $1;
}
}'
Run Code Online (Sandbox Code Playgroud)
输出:
awk: cmd. line:2: host $3 {
awk: cmd. line:2: ^ syntax error
Run Code Online (Sandbox Code Playgroud)
我试图逃避它'\{',但不起作用.
题
有谁知道如何逃避所需的字符?
你不需要逃避括号.你需要引用它们并转义双引号.
awk '{printf "\
host %s {\
option host-name \"%s\";\
hardware ethernet %s;\
fixed-address %s;\
}\n", $3, $3, $2, $1
}'
Run Code Online (Sandbox Code Playgroud)