我知道我可以在//
中使用“awk
”来过滤特殊行,例如:
echo -e "aaa bbb ccc\nddd eee fff" | awk '/bbb/ {print $3}'
输出结果为:
ccc
我想为“//
”中的值定义变量,例如Bash shell
:
#!/bin/bash
re="bbb"
echo -e "aaa bbb ccc\nddd eee fff" | awk '/${re}/ {print $3}'
但它不起作用。如何为过滤器定义变量?
答案 0 :(得分:0)
将~
运算符与awk
变量一起使用:
awk -v re="$re" '$0 ~ re { print $3 }'