gawk '$3=/1/' demo1 | awk '{print $1,$2,$5}'
这时候可以匹配到第三个字段等于 1 的所有行
现在 1 是个变量 num,可能是 2,3,4
那么如何将$num 传进去,下面这样写肯定不行。求教各位。
gawk '$3=/$num/' demo1 | awk '{print $1,$2,$5}'
gawk '$3=/1/' demo1 | awk '{print $1,$2,$5}'
这时候可以匹配到第三个字段等于 1 的所有行
现在 1 是个变量 num,可能是 2,3,4
那么如何将$num 传进去,下面这样写肯定不行。求教各位。
gawk '$3=/$num/' demo1 | awk '{print $1,$2,$5}'
|
fengtonsNov 26, 2019 via Android
1
试试:
gawk '$3=/'$num'/' demo1 | awk '{print $1,$2,$5}' |
|
JirajineNov 26, 2019 via Android
2
# num=1
# echo '$3=/'"$num"'/' $3=/1/ |
|
3
印象 awk 需要用单门冒号拼接方式的,楼上 1 楼可能正解,或者搜 awk 使用变量
|
|
mmlNov 26, 2019
4
num=2
gawk -v num="${num}" '$3~$num' demo1 |
|
5
@fengtons 这个试过了,不行。。
|
|
6
@fengtons 不对不对,你是对的。。。。谢谢。我之前用的双引号,看错了。谢谢!
|
|
7
|
|
itechifyNov 27, 2019
8
@ThinkTwive #7 不客气,我说的单门冒号就是单引号的意思哈~,之前做过你这种需求的,昨天忘记单引号这个术语了,有点傻
|