【问题标题】:AWK not printing variable inside square bracketsAWK 不在方括号内打印变量
【发布时间】:2015-03-31 12:48:46
【问题描述】:

我有一个 bash 脚本,其关键部分如下所示:

#!/bin/sh


read IP (Example: 192.168.2.46)

var1= $IP 


awk -v var="$var1" 'NR==3{print "      \"server\": [ \"var:666\" ]"}7' /home/mark/server.conf > /home/mark/tmp && mv -f /home/mark/tmp /home/mark/server.conf

想要的输出是:

"server": [ "192.168.2.46:666" ]

但是,我得到:

"server": [ "var1:666" ]

为什么,以及如何解决?

【问题讨论】:

    标签: variables printing awk


    【解决方案1】:

    只需将 awk 变量 var 放在双引号之外。

    awk -v var="$var1" 'NR==3{print "      \"server\": [ \""var":666\" ]"}7'
    

    例子:

    $ var1="123"
    $ echo '1' | awk -v var="$var1" '/1/{print "foo\""var"\"bar"}'
    foo"123"bar
    

    【讨论】:

      猜你喜欢
      • 2018-10-25
      • 1970-01-01
      • 1970-01-01
      • 2015-07-02
      • 1970-01-01
      • 2010-12-22
      • 2015-03-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多