在Window中使用 AWK

2021-07-05 04:40:52 字數 4120 閱讀 6994

一直以來都認為awk只能在linux\unix中才能使用,今天偶然查到有window版本的awk。

安裝設定path,包含安裝目錄:c:\program files (x86)\gnuwin32\bin

說明: 源資料是模擬售票機的歷史記錄,字段含義:銷售日期,出發站名稱,到達站名稱,購買票的數量,總金額(day_pass表示通票)

2015-11-16 16:40

:ss,aaa,ddd,2 tickets,4 cny

2015-11-16 16:40

:ss,aaa,day_pass,1 ticket,10 cny

2015-11-16 16:40

:ss,aaa,eee,3 tickets,6 cny

2015-11-16 16:45

:ss,bbb,day_pass,2 tickets,20 cny

2015-11-16 16:49

:ss,ccc,day_pass,1 ticket,10 cny

2015-10-17 19:54

:34,aaa,ddd,1 tickets,2 cny

2015-10-17 19:55

:10,aaa,eee,1 tickets,2 cny

2015-10-17 19:56

:15,aaa,eee,1 tickets,2 cny

2015-10-17 20:14

:13,aaa,eee,1 tickets,2 cny

2015-10-17 20:20

:35,aaa,ddd,1 tickets,2 cny

2015-10-17 20:29

:24,aaa,ddd,1 tickets,2 cny

2015-10-17 20:29

:55,aaa,day_pass,1 tickets,10 cny

2015-10-17 20:49

:02,aaa,day_pass,1 tickets,10 cny

2015-10-17 20:51

:36,aaa,ddd,1 tickets,2 cny

2015-10-03 23:47

:23,aaa,ccc,1 ticket,2 cny

2015-10-03 23:47

:36,aaa,ccc,1 ticket,2 cny

2015-10-03 23:47

:54,aaa,day_pass,1 ticket,10 cny

2015-10-03 23:48

:10,aaa,bbb,2 tickets,4 cny

2015-10-06 11:10

:07,aaa,eee,1 ticket,2 cny

2015-10-09 09:14

:51,aaa,eee,2 tickets,4 cny

2015-10-09 09:25

:12,aaa,fff,1 ticket,2 cny

2015-10-10 03:32

:26,aaa,ddd,1 tickets,4 cny

2015-10-10 03:32

:32,aaa,eee,3 tickets,12 cny

2015-10-10 03:35

:16,aaa,day_pass,1 tickets,10 cny

2015-10-10 03:35

:21,aaa,day_pass,1 tickets,10 cny

2015-10-10 04:02

:44,aaa,ccc,1 tickets,2 cny

2015-10-10 04:06

:32,aaa,ccc,1 tickets,2 cny

2015-10-10 04:38

:57,aaa,ccc,1 tickets,2 cny

2015-10-11 02:23

:35,aaa,ccc,1 tickets,2 cny

2015-10-11 02:26

:05,aaa,ccc,1 tickets,2 cny

2015-10-11 02:27

:16,aaa,ccc,1 tickets,2 cny

2015-09-17 20:26

:19,aaa,ddd,1 ticket,2 cny

2015-09-17 20:30

:20,aaa,ddd,2 tickets,2 cny

2015-09-17 20:30

:39,aaa,fff,1 ticket,2 cny

2015-09-17 20:36

:29,aaa,ddd,1 ticket ,2 cny

2015-09-17 20:46

:42,aaa,ddd,1 ticket ,2 cny

2015-09-17 20:47

:13,aaa,eee,4 tickets ,8 cny

2015-09-17 20:49

:16,ddd,day_pass,1 ticket,10 cny

2015-09-17 21:01

:08,aaa,ddd,1 ticket ,2 cny

2015-09-17 21:01

:25,aaa,eee,3 tickets ,2 cny

2015-09-17 21:03

:41,ddd,fff,1 ticket ,2 cny

2015-09-17 21:06

:57,aaa,fff,2 tickets ,4 cny

2015-09-17 21:27

:20,fff,day_pass,1 ticket ,10 cny

2015-09-17 21:51

:58,aaa,fff,1 ticket ,2 cny

2015-09-18 16:43

:18,aaa,ddd,2 tickets ,4 cny

2015-09-18 17:32

:28,aaa,eee,1 ticket ,2 cny

2015-09-18 18:06

:49,aaa,eee,1 ticket ,2 cny

2015-09-25 09:46

:42,aaa,fff,1 ticket ,2 cny

2015-09-25 09:47

:13,bbb,eee,1 ticket ,2 cny

2015-09-25 09:48

:09,bbb,fff,1 ticket ,2 cny

2015-09-25 10:06

:32,aaa,ddd,8 tickets ,16 cny

業務邏輯說明:從歷史記錄中查詢一段時間內,某個出發站累計賣出了多少票(按照日期和到達站進行分組統計)

gawk -f "[, ]"

"$3~/(%1)/ && ($1 >=\"%2\" && $1

<=\"%3\") " history.txt|gawk "end"| sort > temp.txt

使用安裝包中的awkgawk都可以

query.cmd aaa

2015-10-01

2015-10-31

-結果

2015-10-03 bbb 2

2015-10-03 ccc 2

2015-10-03 day_pass 1

2015-10-06 eee 1

2015-10-09 eee 2

2015-10-09 fff 1

2015-10-10 ccc 3

2015-10-10 day_pass 2

2015-10-10 ddd 1

2015-10-10 eee 3

2015-10-11 ccc 3

2015-10-17 day_pass 2

2015-10-17 ddd 4

2015-10-17 eee 3

static

void main(string args)}}

}catch(exception e)

finally

console.read();

}

awk中使用迴圈

awk 指令碼有三個主要部分 begin 和 end 函式 都可選 使用者自己寫的每次要執行的函式。某種程度上,awk 的主體部分就是乙個迴圈,因為函式中的命令對每一條記錄都會執行一次。然而,有時你希望對於一條記錄執行多次命令,那麼你就需要用到迴圈。來學習一下多次執行同一條命令的不同型別的迴圈。aw...

awk中使用迴圈

awk 指令碼有三個主要部分 begin 和 end 函式 都可選 使用者自己寫的每次要執行的函式。某種程度上,awk 的主體部分就是乙個迴圈,因為函式中的命令對每一條記錄都會執行一次。然而,有時你希望對於一條記錄執行多次命令,那麼你就需要用到迴圈。來學習一下多次執行同一條命令的不同型別的迴圈。aw...

awk中使用shell變數

其實在awk裡,是不能直接使用shell變數的 方法是 awk v 選項讓awk 裡使用shell變數 time 60 awk v time time begin 這樣要注意 在awk裡,time不能加 符號。網上說如下方法都可行 一 var 這種寫法大家無需改變用 括起awk程式的習慣,是老外常用...