[英]Awk use shell variable inside begin block
以下是一个名为sites.txt的文件:
google is good
yahoo is dying
microsoft is ok
faceBook is vulnerable
脚本::
#!/bin/bash
site="facebook"
awk -v s="$site" 'BEGIN {IGNORECASE = 1} /s/' sites.txt
但是上面的命令不会返回任何输出。 如何在begin块中使用shell变量来显示正确的输出。
你的命令字面匹配s
中的每一行。
您应该使用~
运算符:
awk -v s="$site" 'BEGIN {IGNORECASE = 1} $0 ~ s' sites.txt
请注意, IGNORECASE = 1
是gnu awk功能,如果要使用POSIX兼容方式,请使用:
awk -v s="$site" 'tolower($0) ~ tolower(s)' sites.txt
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.