【发布时间】:2019-04-05 19:07:23
【问题描述】:
我有许多如下所示的输入行,我希望最终得到与此类似的输出
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
我曾尝试通过'\{' 转义它,但不起作用。
问题
有人知道如何转义所需的字符吗?
【问题讨论】:
-
这可能会有所帮助 -> bbs.archlinux.org/viewtopic.php?id=145004
-
"{"也许?? -
缺少很多双引号。
-
这超出了您的需要,但请参阅stackoverflow.com/a/24597515/1745001,了解如何在 awk 中打印多行文本块。