如何在 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