【发布时间】:2019-04-15 01:46:45
【问题描述】:
如果我有这个单线
$ echo 0123456789ab | awk '{gsub(/..\B/,"&:")}1'
01:23:45:67:89:ab
我想在 awk 脚本中使用,因此尝试
cat $hosts | awk '{
print "host "$5" {"
print " option host-name \""$5"\";"
print " hardware ethernet "$3";"
x = {gsub(/..\B/,"&:")}1
print " fixed-address "print x";"
print "}"
print ""
}' > /etc/dhcp/reservations.conf
但它失败了
awk: cmd. line:5: x = {gsub(/..\B/,"&:")}1
awk: cmd. line:5: ^ syntax error
awk: cmd. line:6: print " fixed-address "print x";"
awk: cmd. line:6: ^ syntax error
问题
有谁知道如何将这样的单行代码集成到 awk 脚本中?
【问题讨论】:
-
你的输入文件是什么?
-
您应该删除
gsub命令周围的{,因为这不再是单行命令(并且可能完全删除1) -
@Sandra Schlichting,
cat和awk不需要一起使用,awk也可以自己读取文件。 -
向我们展示您正在使用的输入文件?你想
gsub()的值是多少?预期输出是多少