Advisor: Quincy Wu Speaker: Kuan-Ta Lu Date: July 8, 2010

Slides:



Advertisements
Similar presentations
完美殺人筆記簿 【爸!我受夠了!】 第七組組員: 林正敏 陳筱涵 李蓓宇 許純宜 羅玉芬 謝文軒.
Advertisements

1. 卸下标签 身心松静 关注健康! 2. 坦诚开放 互信互赖 社会支持! 3. 排除干扰 倾心体悟 创造协作! 4. 连接自己 享受成长 和谐社会! 恳请与提醒.
大學中文閱讀與書寫課程 推動事項說明與研議 通識教育中心 賴素玫 以小班制 TA 適性輔導為精神之中文閱讀書寫課 程 共同課綱(經外審) /共同教材/共同 學習成果量 延伸教材: 高大中文 一百 書單 推動班級讀書會 制度班級讀書會 制度 強化中文基礎能力檢測機制 高東屏跨校中文能力檢測.
Linux 环境及 Shell 程序 操作系统实验 1. 二、 Shell 编程与进程通信 常用 shell 命令 文件及文件属性操作 ls 、 cp 、 mv 、 rm ln 、 ln –s 、 chmod 、 groupadd 、 useradd 输入输出操作 echo 、 cat >> 、
應用營養研究室台灣大學生化科技系 蕭寧馨 教授 1. 塑化劑 / 毒澱粉 / パン達人事件的反省 忽視飲食的切身性 – 飲食不是身外之物 忽視食品營養資訊 – 不求認識理解,只求簡單答案 – 喪失自主性,聽信廣告行銷 喪失天然食品的形象 – 果汁 = 透明澄清? 不重視食材生產品質 ( 源頭決定結果.
揭日本人让人理解不了的20件事 今天先来看看日本人的自我剖析︰日本人的20个“为什么”?这“20个为什么”的内容来源于日本影视名人北野武所主持的一个节目。虽然不是网友来信中提出过的问题,但看看日本人自己对自己的分析,是挺有意思的。而且,仔细看看下面这“日本人的20个为什么”,会发现其实有些东西对于中国人来说并不陌生。毕竟汉字圈里的文化,是有共融之处的。
作家研究-簡媜 指導教授:鄭定國 執行TA:簡珮如.
月子保姆理论知识试卷.
做 荷 包 的 主 人 第 一 桶 金 督導 張宏仁 財團法人「張老師」基金會 桃園分事務所 督導 張宏仁
食物安全計劃 — 刺身/壽司 訓練資料 食物安全中心.
专利申请 简介 专利申请的种类 专利申请的途径、费用 申请文件 材料学院 刘科高 博士/教授          
第三节 人类的居住地——聚落.
肌肉、骨骼、關節 傷害急救 組員: 499i0014 高藝庭 499i0017 徐育敏 499i0022 林佳瑩 499i0048 詹謹禎
快乐节奏 佛山市高明区更合中学音乐科夏淑华.
上課教材 Database Slide Windows筆電 (32 bit)
愛情路上慢慢走 賴佳琳
選擇性逐字紀錄 臺北市立教育大學 張 德 銳.
103年度北區教學資源中心計畫 5月份管考會議
會計資訊系統 專章A.
第三章 調整與編表.
情緒與壓力管理 手部舒壓運動 第六組.
Introduction 基本概念 授課老師:蕭志明
九十二年度第二次 會計作業實務座談會 主辦單位:會計室.
面对高考之—— 战略与战术 主讲:张海顺 我们的口号: 战略上藐视高考 战术上重视高考.
生物統計與SAS軟體課程教學(三) 雙變項統計分析(一)
第1章第3节 量化研究与质化研究 案例1:关于中学思想政治教师专业发展现状和需求的调查研究
99年成語200題庫(21-40).
約用工讀生/學生助理說明會 人事室報告
第十章 针灸学基础 广州医学院 刘义海、潘俊辉 人民卫生电子音像出版社出版.
指導教授:古錦松 分享同學: 蔡斗溍、陳姿云 陳俊仰、陳國睿(助教)
TQC+ 物件導向程式認證-JAVA.
电话联系.
迎宾员礼仪 包头机电工业职业学校管理系 白琳 1.
国家知识产权局专利局文献部 吴泉洲 国家知识产权局专利信息服务平台 国家知识产权局专利局文献部 吴泉洲
五-4 台灣的生活禮俗 組員:603 15號 黃醴萬 6號 吳家熙 5號 楊証傑 11號 李偉新.
第六章 技术创新与经济增长 本章主要问题 ---技术创新过程 ---技术创新分类 ---技术创新动力源 ---技术创新影响因素
权力的行使:需要监督 北京市京源学校 冯 悦.
小白兔愛跳舞,月夜光下學跳舞 時光一去不回,不要耽誤快快快 朋友們呀大家快來,不要耽誤快快快
104-1學期教學助理說明會 教務處 教學業務暨發展中心 教務長:黃啟煌 主 任:蔡錦雀 承辦人:曹君琪
财 务 会 计 第四篇:供应链会计实务 制作人:谌君、熊瑜.
Operators and Expressions
CH1 Number Systems and Conversion
慈濟大學資源教室 特殊學生的關懷與協助
行行重行行,與君生別離。 相去萬餘里,各在天一涯。 行行重行行:走了一程又一程 生別離:在有生之年分離 語出楚辭:「悲莫悲兮生別離,
诗歌鉴赏专题训练 二零零七年九月.
陳維魁 博士 儒林圖書公司 第七章 參數的傳遞 陳維魁 博士 儒林圖書公司.
第五章 shell 编程 shell 编程的基本过程分为三步: 1. 建立 shell 文件 包含任意多行操作系统命令或shell命令的文本
第三章 编程工具awk 什么是awk awk 是一种程序设计语言, 主要用来处 理数据和产生报表. 它对输入数据(文件、标准输入或命令
Speaker: Kai-Jia Chang Adviser : Quincy Wu Date :
程式語言Visual Basic 傳址與傳值
計數式重複敘述 for 迴圈 P
暴力、草莽、土野、情色、權慾 —華西街的成人童話
刑事訴訟法 不受理.
第2章 算法与C语言程序 程序 (1)数据的描述:数据的类型和组织形式(数据结构) (2)操作的描述:操作步骤(算法) 沃思指出:
Instructor:Po-Yu Kuo 教師:郭柏佑
涉江采芙蓉 重庆市涪陵实验中学 余波.
資料結構與C++程式設計進階 遞迴(Recursion) 講師:林業峻 CSIE, NTU 6/ 17, 2010.
潜行追踪 之红包快跑. 潜行追踪 之红包快跑 红黑对决 随着互联网的发展,网速的飞速提高,有一个特殊的群体,也随之发展壮大,就是一群抢红包黑客,ta们手段高明,耳目灵通,不管红包们深藏何处,没有一个红包能够逃过ta们的手心,都被ta们迅速收归囊中;这一次两群黑客相互不服,准备来一场赌局,以决定谁才是真正的黑老大;而红包们也决定利用这次机会,派出实景红包来打击一下黑客们的嚣张气焰,激烈的决斗马上开始了。。。。。。
教育概論 答題要訣.
红利、年金、满期金自动转入聚宝盆,收益有保底,升值空间更大
聚合型第一種:隱沒帶、島弧 例子:臺灣東方的琉球海溝、南美洲智利海溝. 聚合型第一種:隱沒帶、島弧 例子:臺灣東方的琉球海溝、南美洲智利海溝.
問題解決與流程圖 高慧君 台北市立南港高中 2006年12月22日.
靜宜大學100學年度二學期 服務學習基礎講座 課程助理經驗分享
2010之後 臺灣通識教育的機會與挑戰 臺北醫學大學人文暨社會科學院 林從一.
Ch07. 函式.
An Quick Introduction to R and its Application for Bioinformatics
數學遊戲二 大象轉彎.
第四章 買賣業會計.
SCM系統使用說明 –供應商 1. 登入系統 2. 修改密碼 3. PO-回復 4. DN-回復 5. Forecast維護(暫不能用)
Presentation transcript:

Advisor: Quincy Wu Speaker: Kuan-Ta Lu Date: July 8, 2010 AWK 入門 Advisor: Quincy Wu Speaker: Kuan-Ta Lu Date: July 8, 2010

What Is AWK? 是一種可以處理資料、產生格式化報表的語言,功能相當強大。 awk的工作方式是讀取資料檔,將每一列資料視為一筆記錄(record),每筆記錄以欄位分隔符號分成若干欄位,然後,輸出各個欄位的值。 需要具備正規表示式的基本知識。

awk 的用法 (1) awk '條件類型1{動作1} 條件類型2{動作2} ...' filename $ awk '{ print }' /etc/passwd $ awk -F":" '{ print $1 }' /etc/passwd $ ls -l /etc | awk '{print $1 "\t" $9}'

awk 的用法 (2) $ awk '{print $2,$3}' emp_names $ awk '/AL/ {print $3,$2}' emp_names $ awk '/AL/ {print $3,$2 ; print $4,$5}' emp_names $ awk '/AL/ {print $3,$2} {print $4,$5}' emp_names $ awk '/AL/ {print $3,$2 ; print $4", "$5"\n"}' emp_names

awk 的用法 (3) $ awk '/AL|IN/' emp_names $ awk '$5 ˜ /AR/' emp_names

awk 的變數 (1) 變數 NF 每一行 ($0) 擁有的欄位總數 NR 目前 awk 所處理的是『第幾行』資料 FS 目前的分隔字元,預設是空白鍵 RS 記錄的分隔字元,預設是行 OFS 輸出分隔字元 ORS 輸出記錄分隔字元,預設是行 $ last | awk '{print $1 "\t lines: " NR "\t columes: " NF}'

awk 的變數 (2) $ awk '{FS=":"}{print $2}' mou_names $ awk -F":" '{OFS="-"}{print $1,$2,$3,$4,$5}' mou_names $ awk -F":" '{print NR,$1,$2,$3}' mou_names $ awk -F":" '/4601[2-5]/' mou_names

awk 的運算 (1) 邏輯運算 數學運算 > 大於 < 小於 >= 大於或等於 <= 小於或等於 == 等於 > 大於 < 小於 >= 大於或等於 <= 小於或等於 == 等於 != 不等於 數學運算 + adds numbers together - subtracts * multiplies / divides

awk 的運算 (2) ^ performs exponential mathematics % gives the modulo ++ adds one to the value of a variable += assigns the result of an addition operation to a variable -- subtracts one from a variable -= assigns the result of a subtraction operation to a variable *= assigns the result of multiplication /= assigns the result of division %= assigns the result of a modulo operation cat /etc/passwd | awk '{FS=":"} $3 < 10 {print $1 "\t " $3}'

awk 的運算 (3) $ cat pay | awk 'NR==1{printf "%10s %10s %10s %10s %10s\n",$1,$2,$3,$4,"Total"} NR>=2{total=$2+$3+$4 printf "%10s %10d %10d %10d %10.2f\n",$1,$2,$3,$4,total}‘ $ awk '{print $1,"QTY: "$2,"PRICE: "$3,"TOTAL: "$2*$3}' inventory

awk 的運算 (4) $ awk '{x=x+$2} {print x}' inventory $ awk '{x=x+($2*$3)}{print $1,"QTY: "$2,"PRICE: "$3,"TOTAL: "$2*$3,"BAL: "x}' inventory $ awk '{x=x+($2*$3)} {print $1,"QTY: "$2,"PRICE: "$3,"TOTAL: "$2*$3} END {print "Total Value of Inventory: " x}' inventory

awk 的運算 (5) $ sort emp_names | awk '{print $3,$2}' $ awk '{print NR, $1 > "/tmp/filez" }' emp_names $ awk '{ print $2 | "sort" }' emp_names

Example (1) $ cat g-than #!/bin/awk -f BEGIN{ lowerbound = 55 } /^#/ { print $0 ! /^#/ { for(i=1; i<=NF; i++) if( $i > lowerbound ) print $i $ cat N # just a test 33 22 999 223 44 55 99 $ ./g-than N 999 223 99

Example (2) $ cat sum-fields #!/bin/awk -f /^#/ { print $0 } ! /^#/ { name = "" sum = 0 for(i=1; i<=NF; i++) if( $i ~ /[0-9][-9]*/ ) sum = sum + $i else name = name $i print name "=" sum $ cat > IN 233 112 33 # oh!, just a test # again 333 hi kk 22 $ ./sum-fields IN =378 hikk=355

Example (3) $ cat > sum-vars #!/bin/awk -f /^#/ { print $0 } ! /^#/ { name = $1 sum = 0 for(i=2; i<=NF; i++) sum += $i var[ name ] += sum END{ for (v in var) printf "%s = %d\n", v, var[v] $ cat > IN-num klim 233 112 33 # oh!, just a test # again milk 333 22 klim 999 22 oak 222 redcow 1023 oak 11 $ ./sum-vars IN-num redcow = 1023 klim = 1399 oak = 233 milk = 710

Exercises /etc/passwd 以冒號 “:“ 作為欄位的分隔,如何查閱第三欄小於等於 50 以下的數據,並且僅列出帳號與第三欄以tab隔開? 利用awk計算出檔案sshreport.pl有幾行空白行? 寫一個awk script, 功能如下: $ cat ex-input # klim 23 33 22 11 8888 42 # oak 1000 200 2200 -22 -3000 -20 -3 # redcow 20000 20000 # ryan 73 94 -94 $ ./ex.awk ex-input oak 355 klim 9019 ryan 73 redcow 40000

Reference http://www.oracle.com/technology/pub/articles/dulaney_awk.html http://www.cyut.edu.tw/~dywang/linuxProgram/node20.html http://www.vectorsite.net/tsawk_2.html http://www.study-area.org/cyril/scripts/scripts/node61.html http://www.grymoire.com/Unix/Awk.html http://nixchun.pixnet.net/blog/post/21760238 http://erdos.csie.ncnu.edu.tw/~klim/