AWK 中的变量

AWK 中的变量

如何在 awk 命令中添加变量?以下是我的命令:

cat /home/ubuntu/test/copy.txt | awk 'NR==21{print ".host = "$line";"}1'

$line 基本上是从文本文件中检索到的 IP 地址。使用上述命令,输出如下所示

.host = ;

任何立即的帮助都将非常感激。

copy.txt的格式

backend default {
#.host = value; need to be here
.port = "8080";
}

答案1

中的变量awk可以通过这种方式从shell中传输:

awk -v variable=$line '.....

并以这样的方式在内部使用:

awk -v line1=$line 'NR==21 {print ".host = "line1";"}1'

该变量应该在 bash 中预先设置,以便事情变成:

line=192.168.0.10
awk -v line1=$line 'NR==21 {print ".host = "line1";"}1' /path/to/file ...

另外你不需要cat,只需使用这种方式:

awk '....' /home/ubuntu/test/copy.txt

要将输出存储在文件中,您应该使用类似如下的方法:

awk '....' /home/ubuntu/test/copy.txt >/home/ubuntu/test/new_copy.txt

结果将存储在/home/ubuntu/test/new_copy.txt

相关内容