Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
NISRA Course
Search
loyo
April 17, 2012
Education
1
96
NISRA Course
主題:
戰鬥吧!打工戰士!身為工程師須具備的字串處理思維!
課程要點:
針對常用字串處理介紹 介紹常用工具及指令
loyo
April 17, 2012
Tweet
Share
Other Decks in Education
See All in Education
Tangible, Embedded and Embodied Interaction - Lecture 9 - Next Generation User Interfaces (4018166FNR)
signer
PRO
0
1.2k
Canva
matleenalaakso
0
160
【潔能講堂】永續環境、擁抱綠能 太陽能光電發展現況與產業製程解析
learnenergy2
0
120
Interactive Tabletops and Surfaces - Lecture 7 - Next Generation User Interfaces (4018166FNR)
signer
PRO
1
1.2k
Data Presentation - Lecture 5 - Information Visualisation (4019538FNR)
signer
PRO
0
1.8k
人生の転機からチャンスを掴む「シュロスバーグの4Sモデル」/4s-models
yuko_yokouchi
2
720
アプリ開発を目指した授業づくりについて
asial_corp
0
420
TCA Practice in 5 min
d_date
1
580
インターアクトクラブについて:国際ロータリー第2720地区インターアクト委員会 委員長・大分東ロータリークラブ 阿部 克哉 氏
2720japanoke
0
670
Microsoft Office 365
matleenalaakso
0
1.5k
AWS試験全冠したら新しい道が開けた話
nagisa53
3
1.1k
前期教育実習事前指導0221
naradai
0
130
Featured
See All Featured
Build your cross-platform service in a week with App Engine
jlugia
225
17k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
501
140k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
30
6k
The Language of Interfaces
destraynor
151
23k
Facilitating Awesome Meetings
lara
42
5.6k
Art, The Web, and Tiny UX
lynnandtonic
289
19k
Principles of Awesome APIs and How to Build Them.
keavy
121
16k
How GitHub Uses GitHub to Build GitHub
holman
468
290k
It's Worth the Effort
3n
180
27k
Fantastic passwords and where to find them - at NoRuKo
philnash
37
2.5k
Why Our Code Smells
bkeepers
PRO
331
56k
Agile that works and the tools we love
rasmusluckow
325
20k
Transcript
戰鬥吧!打工戰士! 身為工程師須具備的字串處理思維! Loyo@NISRA
Before Start 任何提及之 圖片、影片皆為 原所有人所有
WHY 為什麼選擇此主題? 增加面對處理字串時… 的手感!!!
思維方式 甚麼時候要? 資料筆數? 是否要非常精準? 檔案是否有中文或特殊字元? 日後常常會用到? 手邊目前 有甚麼工具? 檔案格式?
STRING 字串
字串系三小… “ “ 這就是字串!!!!!!!
STRING 計算字串出現次數 字串 count 取代字串成目標字串(可能是換成空白字元) replace
STRING 抓取某特定字串 字串 select 將特定字串排列 sort
Linux Command Linux 常用指令
HEAD LESS CAT TAIL I > >> WC SORT UNIQ
GREP AWK LINUX常用指令
CAT, LESS cat <file> 顯示檔案內容 CAT less <file> LESS 一次倒出所有內容
可控制瀏覽內容 搜尋內容也很方便!
HEAD, TAIL head -n <file> also 顯示檔案內容 HEAD tail -n
<file> TAIL 選擇性從頭顯示內容 選擇性從最後顯示內容 *(參數) n :行數 *(參數) n :行數
“|” PIPE <command1> | <command2> 重導輸出內容 唸法: PIPE “|” 將command1輸出內容
當成command2的輸入
“|” PIPE 重導輸出內容 唸法: PIPE 拜託不要打L… (會崩潰
>, >> <command>> <file> 資料流重導向 > <command>>> <file> >> 取代的概念
累加的概念 *經常搭配在處理指令輸出結果寫檔,會覆蓋前次結果 *經常搭配在處理指令輸出結果寫檔,會累加呈現
WC wc -l <file> 資料計算(行數, 字元數) wc (計算行數) wc -m
<file> wc (計算字元數) 計算該檔案有幾行 計算該檔案有幾字元 *(參數) -l :計算行數 *經常搭配pipe使用 *是L , 容易和pipe搞混 *(參數) -m :計算字元數(換行也算)
SORT sort <file> 資料排序 sort 排序檔案內容 *(參數) -f :忽略大小寫 (注意忽略大小寫,會因系統環境變數設定不同而有差異)
-b:忽略每行前方的空白 -r:反向排序 -u:將相同之選項排除,僅保留一項 *uniq 與 sort 視情境搭配使用
UNIQ uniq <file> 排除重覆資料 uniq 排除檔案內容重覆部分 *(參數) -i :忽略大小寫 -c:計算重覆次數
*uniq 指令是將重複的項目減少 所以需要『配合排序過的檔案』(sort command)
GREP grep PATTERN <file> 選取特定資料 grep 選取檔案中特定資料 *(參數) -i :
忽略大小寫 -E: PATTERN 使用 regexp -v: 反向選取,相當於列出不符合 PATTERN 的資料 *grep 指令使用的的機會非常高,建議多熟悉!
AWK awk -F'#' '{print $3}' <file> 資料處理工具 awk 選取檔案中特定 欄位資料
*(參數) F : 分隔符號 allenown#realpiyo#shaolin#anfa $1 $2 $3 $4 *awk的用法非常多,甚至可以針對IF去做判斷,可自行玩 玩實驗看看。 $3 = ?
REGEXP 正規表達式 敘述符合某段句法規則之字串的字串 用來找尋與驗證或替換符合規則的字串。
包含大小寫A-Z的字元 REGEXP [A-Za-z] 正規表達式 篩選字串格式的描述語句 包含大小寫A-Z的四個字元 [A-Za-z]{4} 表示所有由四個A-Z字元所組 成的字串!(大小寫視同)
包含大小寫A-Z,0-9的字元,字元數最少3個,最多8個的字串 REGEXP [A-Za-z0-9] {3,8} 正規表達式 開頭是由4個0-9的數字所組成的字串 ^[0-9]{4} 結尾是由4個0-9的數字所組成的字串 [0-9]{4}$
手機號碼(09xx-xxx-xxx) REGEXP 09[0-9]{2}-[0-9]{3}-[0-9]{3} 正規表達式 手機號碼(09xx-xxxxxx) 09[0-9]{2}-[0-9]{6} 身分證字號 [A-Za-z][12][0-9]{8} 1或是2
REGEXP正規表達式 字母 縣市 A 臺北市 B 臺中市 C 基隆市 D
臺南市 E 高雄市 F 新北市 G 宜蘭縣 H 桃園縣 I 嘉義市 J 新竹縣 K 苗栗縣 字母 縣市 M 南投縣 N 彰化縣 O 新竹市 P 雲林縣 Q 嘉義縣 T 屏東縣 U 花蓮縣 V 臺東縣 W 金門縣 X 澎湖縣 Z 連江縣 第一碼數字: 2 -> 女 1 -> 男 第一碼字母:
MIKU 初音ミク A: 初音是誰? B:初音是個軟體而已...... C:什麼叫初音是個軟體而以.....想決鬥嗎?!!!! B:好啦 應該說她"本來"是個軟體 C:什麼叫做「本來」是個軟體! 你又要決鬥了嗎!????
ENCODING 字元編碼 Character encoding
ENCODING 字元編碼 字元 凡舉看到的符號、字符皆可稱為字元。 字集 字元的集合,即為字集,不同國家因語言與文字上 的不同,會有不同的字集。 字碼 對於字集對應而產生的對應碼,即為字碼。
ENCODING 字元編碼 舉個例子…
None
ENCODING 字元編碼 字元 假設 ”是否要吃這件事” 為一個概念,而每一個概念即表示一個字元。 字集 那日常生活中的吃喝拉撒睡,就是很多個概念(字元)的集合了。 要 吃
嗎 ? 要 喝 嗎 ? 要 撒 嗎 ? 要 睡 嗎 ? 要 ‧‧‧‧ 嗎 ? 概 念 的 集 合 ( 字 集 )
ENCODING 字元編碼 字碼 那麼在概念的集合中,為了方便溝通,乾脆給都給它個編碼吧? 要 吃 嗎 ? 要 喝
嗎 ? 要 撒 嗎 ? 要 睡 嗎 ? 要 ‧‧‧‧ 嗎 ? 概 念 的 集 合 ( 字 集 ) 0A 0B 0C 0D 0E 字 碼
ENCODING 字元編碼 0A 0B 要 吃 嗎 ? 要 喝
嗎 ?
ENCODING 字元編碼 日本字元 假設 ”是否要吃這件事” 為一個概念,而每一個概念即表示一個字元。 日本字集 那日常生活中的吃喝拉撒睡,就是很多個概念(字元)的集合了。 概 念
的 集 合 ( 字 集 ) 食 べ ま す か ? 飲 み ま す か ? XX ま す か ? OO ま す か ? YY ま す か ?
ENCODING 字元編碼 日本字碼 那麼在概念的集合中,為了方便溝通,乾脆給都給它個編碼吧? 食 べ ま す か ?
飲 み ま す か ? XX ま す か ? OO ま す か ? YY ま す か ? 概 念 的 集 合 ( 字 集 ) 1A 1B 1C 1D 1E 字 碼
ENCODING 字元編碼 1C 1A 食 べ ま す か ?
飲 み ま す か ?
ENCODING 字元編碼 當日本人碰到台灣人…
ENCODING 字元編碼 1C 食 べ ま す か ? 1C
字碼不相同無法對應 同時使用的字集也不同 ??
BIG5 大五碼 五大碼
ENCODING 字元編碼 Big5 Big5雖普及於台灣、香港與澳門等繁體中文通行區,但長期以來並非當 地的國家標準,而只是業界標準。 要 吃 嗎 ? 要
喝 嗎 ? 要 撒 嗎 ? 要 睡 嗎 ? 要 ‧‧‧‧ 嗎 ? 概 念 的 集 合 ( 字 集 ) 0A 0B 0C 0D 0E 字 碼 示 意 圖
Unicode 統一碼、萬國碼、單一碼、標準萬國碼
ENCODING 字元編碼 Unicode 電腦科學領域裡的一項業界標準。它為世界上大部分的文字系統進行整 理、編碼,使得電腦可以用更為簡化地方式來呈現和處理文字。 示 意 圖 要 吃
嗎 ? 要 喝 嗎 ? 要 撒 嗎 ? 要 睡 嗎 ? 概 念 的 集 合 ( 字 集 ) 00A 00B 00C 00D 01A 字 碼 食 べ ま す か ? 飲 み ま す か ? XX ま す か ? OO ま す か ? 01B 01C 01D
&*&%ˊ-=[_ 亂碼
ENCODING 字元編碼 亂碼 當使用的字集與字元編碼互相不符合的時候,就會出現亂碼。 Big5 vs UTF8 隞嗡��vs 電子郵件 NOTE:
UTF8是Unicode的一種編碼方式!
THE END
本著作由Loyo Fulamce製作,以創用CC 姓名標示- 非商業性-相同方式分享 3.0 台灣 授權條款釋出。 任何提及之圖片、影片其版權皆為原所有人所有
任何事情…
都要咬緊牙根!!!!
[轉錄] 若你把目標放在月球 那你將輕易越過樹梢