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}'
1
fengtons 2019-11-26 21:50:14 +08:00 via Android
试试:
gawk '$3=/'$num'/' demo1 | awk '{print $1,$2,$5}' |
2
Jirajine 2019-11-26 21:50:20 +08:00 via Android
# num=1
# echo '$3=/'"$num"'/' $3=/1/ |
3
oneisall8955 2019-11-26 22:00:57 +08:00 via Android 1
印象 awk 需要用单门冒号拼接方式的,楼上 1 楼可能正解,或者搜 awk 使用变量
|
4
mml 2019-11-26 22:05:40 +08:00
num=2
gawk -v num="${num}" '$3~$num' demo1 |
5
ThinkTwive OP @fengtons 这个试过了,不行。。
|
6
ThinkTwive OP @fengtons 不对不对,你是对的。。。。谢谢。我之前用的双引号,看错了。谢谢!
|
7
ThinkTwive OP |
8
oneisall8955 2019-11-27 11:05:08 +08:00
@ThinkTwive #7 不客气,我说的单门冒号就是单引号的意思哈~,之前做过你这种需求的,昨天忘记单引号这个术语了,有点傻
|