- 论坛徽章:
- 0
|
QUOTE:
原帖由 无声无息 于 2009-2-27 15:07 发表
讨论一下这个问题
awk '{if($1=="'$a'") print $1}' 1.txt #单引号包着$a
awk '{if($1=='$a') print $1}' 1.txt
awk '{if($1=='"$a"') print $1}' 1.txt #双引号包着$a
awk '{print $1 "'$a"' ...
awk '{if($1=="'$a'") print $1}' 1.txt #单引号包着$a
awk '{if($1=='$a') print $1}' 1.txt
awk '{if($1=='"$a"') print $1}' 1.txt #双引号包着$a
我们在这里定义
a='1234 5678' #注意4 5之间的空格..
分别放到这三项里...那么...
awk '{if($1=="'1234 5678'") print $1}' 1.txt # 这个将报错,因为4 5之间的空格把语包给断了..
awk '{if($1=='1234 5678') print $1}' 1.txt #这个同样...
awk '{if($1=='"1234 5678"') print $1}' 1.txt #这个不报错,因为双引号把空格的含义取消了..
但如果a='1234'呢.则没有问题...
贴一下你的回复
其实这个赋值awk '{if($1=='"1234 5678"') print $1}' 1.txt #这个不报错,因为双引号把空格的含义取消了..
在逻辑上是无效的,举例子
@gz-10:~/shell/test$ cat 1.txt
aa bb cc
dd ee ff
gg hh ii
jj kk ll
@gz-10:~/shell/test$ a=aa
@gz-10:~/shell/test$ awk '{if($1=="'$a'") print $0}' 1.txt
aa bb cc
@gz-10:~/shell/test$ awk '{if($1=='$a') print $0}' 1.txt
@gz-10:~/shell/test$ awk '{if($1=='"$a"') print $0}' 1.txt
@gz-10:~/shell/test$ |
|