2018.1.12 5周5次課
8.10 shell特殊符號cut命令
8.11 sort_wc_uniq命令 8.12 tee_tr_split命令 8.13 shell特殊符號下
8.10 shell特殊符號cut命令
1. 特殊符號
* 任意個任意字符
*代表零個或多個任意字符
? 任意一個字符
?只代表一個任意的字符
# 註釋字符
表示註釋說明,即#後面的內容都會被忽略
\ 脫義字符
這個字符會將後面的特殊符號 (如*) 還原為普通字符
| 管道符
這個字符前面曾多次出現過,它的作用是將前面命令的輸出作為後面命令的輸人。這裏提到的後面的命令,並不是所有的命令都可以的,一般針對文檔操作的命令比較常用。例如cat、less、head, tail、grep、cut、sort、wc、uniq、tee、tr、split、sed、awk等,其中grep、sed和awk是正則表達式,必須掌握的工具
2.cut命令
cut命令用來截取某一個字段
其格式為cut –d '分隔字符' [-cf] n
-d: 後面跟分隔字符,分隔字符要用單引號括起來。
-c: 後面接的是第幾個字符。
-f: 後面接的是第幾個區塊
8.11 sort_wc_uniq命令
1. sort命令用做排序,其格式為sort [ -t 分隔符] [kn1,n2 ] [-nru],這裏n1和n2指的是數字。
-t : 後面跟分隔字符,作用跟cut的-d選項一樣。
-n:表示使用純數字排序。字母和特殊符號都為0。
-r:表示反向排序。
-u:表示去重復
-kn1,n2: 表示由n1區間排序到n2區間,可以只寫-kn1,即對n1字段排序。
如果sort不加任何選項,則從首字符向後依次按ASCII碼值進行比較, 最後將它們按升序輸出
排序規則:特殊符號-數字-字母(包括*)
“-n”
-
2. wc命令用於統計文檔的行數、字符數或詞數。
常用選項
-l:統計行數
-m:統計字衣數
-w:統計詞數
不跟任何選項,直接跟文檔,則會把行數、詞數和字符數依次輸出
3. uniq命令用來刪除重復的行,該命令只有- c選項比較常用,它表示統計重復的行數,並把行數寫在前面
去重要有條件的,先排除,才能去重
8.12 tee_tr_split命令
1. 命令tee 和>類似,重定向的同時還在屏幕顯示,該命令常用於管道符 | 後。
有2層含義:先重定向,再把管道前面的結果打印在屏幕上。
清空a.txt,就用命令【>】可以了
選項“-a“就是追加
2. tr命令用於替換字符,常用來處理文檔中出現的特殊符號。
該命令常用的選項有以下兩個。
-d:表示刪除某個字符,後面跟要刪除的字符。
-s:表示刪除重復的字符。
3. split命令用於切割文檔
常用的選項
-b:表示依據大小來分割文檔,單位為byte
-l:表示依據行數來分割文檔
如果split不指定目標文件名,則會以xaa、xab…..這樣的文件名來存取切割後的文件。當然,我們也可以指定目標文件名.
8.13 shell特殊符號下
$ 變量前綴,!$組合,正則裏面表示行尾
;多條命令寫到一行,用分號分割.
~ 用戶家目錄,後面正則表達式表示匹配符
& 放到命令後面,會把命令丟到後臺
重定向符號>; >>; 2>; 2>>; &>
[ ] 指定字符中的一個,[0-9],[a-zA-Z],[abc]
|| 和 && ,用於命令之間
command1;command2 :使用;時,不管command1是否執行成功,都會執行command2。
command1 && command2 :使用&&時,只有command1執行成功後,command2才會執行,否則command2不執行。
command1 | | command2:使用 | | 時,command1執行成功後則command2不執行,否則執行command2,即command1和command2中總有一條命令會執行。
2018.1.12 5周5次課