- 論壇徽章:
- 0
|
QUOTE:
原帖由 無聲無息 于 2009-2-27 15:07 發(fā)表
討論一下這個問題
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$ |
|