亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
12下一頁
最近訪問板塊 發(fā)新帖
查看: 3738 | 回復: 16
打印 上一主題 下一主題

討論一下關于awk賦值的幾種做法 [復制鏈接]

論壇徽章:
0
跳轉到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2009-02-27 15:10 |只看該作者 |倒序瀏覽
討論一下這個問題

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"'}' 1.txt #單引號包著$a
awk '{print $1 '$a'}' 1.txt
awk '{if($1=='"$a"') print $1}' 1.txt  #雙引號包著$a

這三個寫法的區(qū)別是?

個人理解是:賦值就是把讓shell中的$在awk命令下有效,也就是awk對所定義賦值的$沒用
但是三種的區(qū)別怎么理解,請先測試測試。

論壇徽章:
11
金牛座
日期:2015-03-19 16:56:22數(shù)據(jù)庫技術版塊每日發(fā)帖之星
日期:2016-08-02 06:20:00數(shù)據(jù)庫技術版塊每日發(fā)帖之星
日期:2016-04-24 06:20:00數(shù)據(jù)庫技術版塊每日發(fā)帖之星
日期:2016-04-13 06:20:00IT運維版塊每日發(fā)帖之星
日期:2016-04-13 06:20:00數(shù)據(jù)庫技術版塊每日發(fā)帖之星
日期:2016-02-03 06:20:00數(shù)據(jù)庫技術版塊每日發(fā)帖之星
日期:2015-08-06 06:20:00季節(jié)之章:春
日期:2015-03-27 15:54:57羊年新春福章
日期:2015-03-27 15:54:37戌狗
日期:2015-03-19 16:56:41數(shù)據(jù)庫技術版塊每日發(fā)帖之星
日期:2016-08-18 06:20:00
2 [報告]
發(fā)表于 2009-02-27 15:17 |只看該作者
額....剛才另外一帖回復了~~

論壇徽章:
0
3 [報告]
發(fā)表于 2009-02-27 15:18 |只看該作者
  1. [root@Mylinux tmp]# a="hello";awk 'BEGIN{print "'$a'"}'
  2. hello
  3. [root@Mylinux tmp]# a="hello";awk 'BEGIN{print '$a'}'      ###shell解釋后變成print hello,因awk的變量hello為空,打印空

  4. [root@Mylinux tmp]# a="hello";awk 'BEGIN{print '"$a"'}'  ###同第二個

  5. [root@Mylinux tmp]#
復制代碼

[ 本帖最后由 ywlscpl 于 2009-2-27 15:20 編輯 ]

論壇徽章:
0
4 [報告]
發(fā)表于 2009-02-27 15:22 |只看該作者
[root@Mylinux tmp]# a="hello";awk 'BEGIN{print '$a'}'      ###shell解釋后變成print hello,因awk的變量hello為空,打印空

print怎么給shell解釋了?

論壇徽章:
0
5 [報告]
發(fā)表于 2009-02-27 15:26 |只看該作者
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$

論壇徽章:
5
2015年辭舊歲徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亞洲杯之朝鮮
日期:2015-03-13 22:47:33IT運維版塊每日發(fā)帖之星
日期:2016-01-09 06:20:00IT運維版塊每周發(fā)帖之星
日期:2016-03-07 16:27:44
6 [報告]
發(fā)表于 2009-02-27 15:32 |只看該作者

回復 #5 無聲無息 的帖子

無聲無息,好久不見了。

到底是什么問題。

論壇徽章:
9
2015亞冠之阿爾納斯爾
日期:2015-09-10 16:21:162015亞冠之塔什干火車頭
日期:2015-07-01 16:23:022015年亞洲杯之巴勒斯坦
日期:2015-04-20 17:19:46子鼠
日期:2014-11-13 09:51:26未羊
日期:2014-08-28 18:13:36技術圖書徽章
日期:2014-02-21 09:30:15酉雞
日期:2014-01-14 11:12:49天蝎座
日期:2013-12-09 17:56:53平安夜徽章
日期:2015-12-26 00:06:30
7 [報告]
發(fā)表于 2009-02-27 15:35 |只看該作者
我的理解是這里的$是在shell中解釋的
[root@Mylinux tmp]# a="hello";awk 'BEGIN{print "'$a'"}'  -----> 相當于awk 'BEGIN{print "hello"}'

[root@Mylinux tmp]# a="hello";awk 'BEGIN{print '$a'}'    -----> 相當于awk 'BEGIN{print hello}'  hello值為空

[root@Mylinux tmp]# a="hello";awk 'BEGIN{print '"$a"'}'  -----> 相當于相當于awk 'BEGIN{print hello}' hello值為空

[root@Mylinux tmp]#

論壇徽章:
5
2015年辭舊歲徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亞洲杯之朝鮮
日期:2015-03-13 22:47:33IT運維版塊每日發(fā)帖之星
日期:2016-01-09 06:20:00IT運維版塊每周發(fā)帖之星
日期:2016-03-07 16:27:44
8 [報告]
發(fā)表于 2009-02-27 15:38 |只看該作者

回復 #7 HH106 的帖子

這是shell中的引用問題啊。

論壇徽章:
11
金牛座
日期:2015-03-19 16:56:22數(shù)據(jù)庫技術版塊每日發(fā)帖之星
日期:2016-08-02 06:20:00數(shù)據(jù)庫技術版塊每日發(fā)帖之星
日期:2016-04-24 06:20:00數(shù)據(jù)庫技術版塊每日發(fā)帖之星
日期:2016-04-13 06:20:00IT運維版塊每日發(fā)帖之星
日期:2016-04-13 06:20:00數(shù)據(jù)庫技術版塊每日發(fā)帖之星
日期:2016-02-03 06:20:00數(shù)據(jù)庫技術版塊每日發(fā)帖之星
日期:2015-08-06 06:20:00季節(jié)之章:春
日期:2015-03-27 15:54:57羊年新春福章
日期:2015-03-27 15:54:37戌狗
日期:2015-03-19 16:56:41數(shù)據(jù)庫技術版塊每日發(fā)帖之星
日期:2016-08-18 06:20:00
9 [報告]
發(fā)表于 2009-02-27 15:39 |只看該作者

回復 #5 無聲無息 的帖子

在邏輯上是無效的,舉例子

@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$
你這里存在邏輯問題..

@gz-10:~/shell/test$ awk '{if($1=="'$a'" print $0}' 1.txt         
aa bb cc
這不報錯...正常...
awk '{if($1=='$a') print $0}' 1.txt  這里
awk '{if($1==aa) print $0}' 1.txt  由于aa沒有定義~那么aa為空....所以不成立...不要以為aa在這時是普通字符.....
@gz-10:~/shell/test$ awk '{if($1=='"$a"') print $0}' 1.txt 這里同樣...
對于文本上記得在awk里帶上 雙引號..對于數(shù)字型的..可以省略..

論壇徽章:
0
10 [報告]
發(fā)表于 2009-02-27 15:46 |只看該作者
原帖由 blackold 于 2009-2-27 15:32 發(fā)表
無聲無息,好久不見了。

到底是什么問題啊?


呵呵,好久不見,最近被python折騰。。。

我的問題是這3個賦值方法如何如何理解

給大家這么一說,又想起來了,thx

[ 本帖最后由 無聲無息 于 2009-2-27 15:47 編輯 ]
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術有限公司. 版權所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關心和支持過ChinaUnix的朋友們 轉載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP