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

  免費注冊 查看新帖 |

Chinaunix

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

[文本處理] 求教個awk的問題,煩高手解答 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2014-02-27 17:27 |只看該作者 |倒序瀏覽
本帖最后由 rdcwayx 于 2014-02-28 09:05 編輯

我下面的文件我要按($2大于30小于25)$3 $2 $1的情況顯示,$3相同的顯示一次,$1要相加,我的代碼為什么只顯示了ffff的一條記錄,怎么改一下?
  1. [root@localhost aaa]# cat a.bak
  2. 12 30 aaa
  3. 15 40 ffff
  4. 45 30 aaa
  5. 41 90 xxxx
  6. 48 40 ffff
  7. 47 35 qqqq
  8. 78 40 ffff
  9. 44 35 qqqq
  10. 16 50 zzzz
  11. 18 40 mmmm
復(fù)制代碼
  1. [root@localhost aaa]# awk '{if($2>30 || $2<25) print $0}' a.bak |sort |awk '{a[$3]+=$1};END{print $3,$2,a[$3]}'  
  2. ffff 40 141
復(fù)制代碼

論壇徽章:
32
處女座
日期:2013-11-20 23:41:20雙子座
日期:2014-06-11 17:20:43戌狗
日期:2014-06-16 11:05:00處女座
日期:2014-07-22 17:30:47獅子座
日期:2014-07-28 15:38:17金牛座
日期:2014-08-05 16:34:01亥豬
日期:2014-08-18 13:34:25白羊座
日期:2014-09-02 15:03:55金牛座
日期:2014-11-10 10:23:58處女座
日期:2014-12-02 09:17:52程序設(shè)計版塊每日發(fā)帖之星
日期:2015-06-16 22:20:002015亞冠之塔什干火車頭
日期:2015-06-20 23:28:22
2 [報告]
發(fā)表于 2014-02-27 17:37 |只看該作者
根據(jù)你的文本,你想得到的結(jié)果是怎樣的?

論壇徽章:
33
榮譽會員
日期:2011-11-23 16:44:17天秤座
日期:2014-08-26 16:18:20天秤座
日期:2014-08-29 10:12:18丑牛
日期:2014-08-29 16:06:45丑牛
日期:2014-09-03 10:28:58射手座
日期:2014-09-03 16:01:17寅虎
日期:2014-09-11 14:24:21天蝎座
日期:2014-09-17 08:33:55IT運維版塊每日發(fā)帖之星
日期:2016-04-17 06:23:27操作系統(tǒng)版塊每日發(fā)帖之星
日期:2016-04-18 06:20:00IT運維版塊每日發(fā)帖之星
日期:2016-04-24 06:20:0015-16賽季CBA聯(lián)賽之天津
日期:2016-05-06 12:46:59
3 [報告]
發(fā)表于 2014-02-27 17:40 |只看該作者
你把 print 放在END里, 當(dāng)然只print 一條了

論壇徽章:
2
水瓶座
日期:2014-02-28 14:20:09辰龍
日期:2014-06-16 13:18:51
4 [報告]
發(fā)表于 2014-02-27 17:57 |只看該作者
回復(fù) 1# hejianbu437


    湊合看吧
  1. awk '{if($2>30 || $2<25) print $0}' a.bak |sort |awk 'BEGIN{i=1};{a[$3]=$2;b[$3]+=$1;c[i++]=$3};END{for(j=1;j<=length(a);j++) print c[j]"\t" a[c[j]]"\t" b[c[j]]}'
復(fù)制代碼

論壇徽章:
18
辰龍
日期:2014-05-21 21:01:4115-16賽季CBA聯(lián)賽之深圳
日期:2016-12-23 13:51:3815-16賽季CBA聯(lián)賽之北控
日期:2016-11-28 18:26:3815-16賽季CBA聯(lián)賽之佛山
日期:2016-11-03 11:18:5815-16賽季CBA聯(lián)賽之遼寧
日期:2016-07-10 16:09:4115-16賽季CBA聯(lián)賽之江蘇
日期:2016-02-20 23:09:202015亞冠之塔什干棉農(nóng)
日期:2015-08-17 19:49:492015年亞洲杯之日本
日期:2015-04-30 01:24:342015年亞洲杯之約旦
日期:2015-04-01 00:37:182015年亞洲杯之沙特阿拉伯
日期:2015-03-02 15:55:40處女座
日期:2014-05-25 10:34:0020周年集字徽章-年
日期:2023-04-23 11:17:52
5 [報告]
發(fā)表于 2014-02-27 18:18 |只看該作者
本帖最后由 bikkuri 于 2014-02-27 20:30 編輯
  1. root@jinx:/tmp/new# awk '{if($2>30 || $2<25) print $0}' a.bak |sort |awk '{if(a[$3" "$2]==0)b[len++]=$3" "$2;a[$3" "$2]+=$1;};END{for(i=0;i<len;i++)print b[i],a[b[i]]}'
  2. ffff 40 141
  3. zzzz 50 16
  4. mmmm 40 18
  5. xxxx 90 41
  6. qqqq 35 91
  7. root@jinx:/tmp/new#
復(fù)制代碼

論壇徽章:
39
辰龍
日期:2013-08-21 15:45:192015亞冠之廣州富力
日期:2015-05-12 16:34:52亥豬
日期:2015-03-03 17:22:00申猴
日期:2015-03-03 17:21:37未羊
日期:2014-10-10 13:45:41戌狗
日期:2014-06-17 09:53:29巨蟹座
日期:2014-06-12 23:17:17雙魚座
日期:2014-06-10 12:42:44寅虎
日期:2014-06-09 12:52:172015亞冠之卡爾希納薩夫
日期:2015-05-24 15:24:35黃金圣斗士
日期:2015-12-02 17:25:0815-16賽季CBA聯(lián)賽之吉林
日期:2017-06-24 16:43:52
6 [報告]
發(fā)表于 2014-02-27 18:52 |只看該作者
回復(fù) 1# hejianbu437


    目測一下:
  1. awk '$2>30||$2<25{a[$3FS$2]+=$1}END{for(i in a)print i,a[i]}'  urfile
復(fù)制代碼

論壇徽章:
0
7 [報告]
發(fā)表于 2014-02-27 19:04 |只看該作者
本帖最后由 rdcwayx 于 2014-02-28 09:05 編輯

回復(fù) 4# rogantianwz

兄弟 這個想辦法優(yōu)化下,你用c[i++]=$3會有問題的,你看下面的a.txt文件你就不行。
  1. [root@localhost tmp]# awk '{if($2>35||$2<30) print $0}' a.txt | sort |awk 'BEGIN{i=1};{a[$3]=$2;b[$3]+=$1;c[i++]=$3};END{for(j=1;j<=length(a);j++) print c[j]"\t" a[c[j]]"\t" b[c[j]]}'
  2. ffff    40      133
  3. zzzz    50      16
  4. mmmm    40      18
  5. ffff    40      133
  6. [root@localhost tmp]# cat a.txt
  7. 12 30 aaa
  8. 15 40 ffff
  9. 45 30 aaa
  10. 41 90 xxxx
  11. 40 40 ffff
  12. 47 35 qqqq
  13. 78 40 ffff
  14. 44 35 qqqq
  15. 16 50 zzzz
  16. 18 40 mmmm
  17. [root@localhost tmp]#
復(fù)制代碼

論壇徽章:
0
8 [報告]
發(fā)表于 2014-02-27 19:06 |只看該作者
本帖最后由 rdcwayx 于 2014-02-28 09:06 編輯

回復(fù) 5# bikkuri

這句沒搞明白,煩解讀下,感謝!
  1. '{if(a[$3" "$2]==0)b[len++]=$3" "$2;a[$3" "$2]+=$1;};
復(fù)制代碼

論壇徽章:
0
9 [報告]
發(fā)表于 2014-02-27 19:10 |只看該作者
本帖最后由 rdcwayx 于 2014-02-28 09:06 編輯

回復(fù) 6# 關(guān)陰月飛

這句麻煩幫我解釋下,感謝:
  1. {a[$3FS$2]+=$1}
復(fù)制代碼

論壇徽章:
18
辰龍
日期:2014-05-21 21:01:4115-16賽季CBA聯(lián)賽之深圳
日期:2016-12-23 13:51:3815-16賽季CBA聯(lián)賽之北控
日期:2016-11-28 18:26:3815-16賽季CBA聯(lián)賽之佛山
日期:2016-11-03 11:18:5815-16賽季CBA聯(lián)賽之遼寧
日期:2016-07-10 16:09:4115-16賽季CBA聯(lián)賽之江蘇
日期:2016-02-20 23:09:202015亞冠之塔什干棉農(nóng)
日期:2015-08-17 19:49:492015年亞洲杯之日本
日期:2015-04-30 01:24:342015年亞洲杯之約旦
日期:2015-04-01 00:37:182015年亞洲杯之沙特阿拉伯
日期:2015-03-02 15:55:40處女座
日期:2014-05-25 10:34:0020周年集字徽章-年
日期:2023-04-23 11:17:52
10 [報告]
發(fā)表于 2014-02-27 20:27 |只看該作者
本帖最后由 bikkuri 于 2014-02-27 20:29 編輯

太好理解了!這不就是你說的“$3相同的顯示一次,$1要相加”嘛!

$3相同的顯示一次:if(a[$3" "$2]==0)b[len++]=$3" "$2;
$1要相加:a[$3" "$2]+=$1;};


hejianbu437 發(fā)表于 2014-02-27 19:06
回復(fù) 5# bikkuri

這句沒搞明白,煩解讀下,感謝!
您需要登錄后才可以回帖 登錄 | 注冊

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

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP