Linux20180424五周第五次課(4月24日)
8.10 shell特殊符號cut命令
8.11 sort_wc_uniq命令
8.12 tee_tr_split命令
8.13 shell特殊符號下
相關測驗題目:http://ask.apelearn.com/question/5437
擴展
1. source exec 區別 http://alsww.blog.51cto.com/2001924/1113112
2. Linux特殊符號大全http://ask.apelearn.com/question/7720
3. sort並未按ASCII排序 http://blog.csdn.net/zenghui08/article/details/7938975
\脫義符號,作用和之前說過的單引號差不多,都是不解析,直接輸出。
echo \$a\$b
| head -n 將管道符前面的cat的文件的前n行取出來
cut
-d "分隔符"
-f 選取第幾段
-c 選取第幾個字符
cut -d ":" -f 1-3
以:為分隔符,選取1-3行
sort 排序
可以看一下特殊符號,數字,字母的排序。
特殊符號排最前面,其次是數字,最後是字母,*會認為是0
-n參數的時候,會以數字大小去排序,但是字母和特殊符號被認為是0所以會在數字前面
-r反序排序
-t分隔符 -kn1/-kn1,n2
wc -l wc是word count 數單詞的 -l 是行的意思 所以 wc -l 是 統計多少行
wc -m 統計字符數,因為每一行會有一個換行符,所以每行會多一個字符
-w 統計詞 word
以空格或者空字符來區分的
uniq 去重,需要先排序把相同的放在一起,才使用去重。因為不排在一起無法直接uniq去重。看下圖
所以就需要先排序,再去重。先用sort 將所有的重新排序,再用管道符uniq去重。如下圖。
uniq -c 統計重復次數,如下圖
sort和uniq一般連著用比較多
sort uniq wc等都不會對文件本身的內容做出更改
tee和重定向>類似,會把結果打印到屏幕上 如果後面加上文件名會將前面的結果寫入到後面的文件中
tee -a 就是追加 類似 >>
tr替換字符, | tr "xx" "mmm" 將管道符前面的字符中的xx換成mmm。 如果想把所有的小寫換成大寫,可以寫成 tr '[a-z]' '[A-Z]' 是一一對應的
split 切割文件 -b 跟大小 默認單位是字節 -l 跟行數 b就是以大小為單位切割 l就是以行為大小切割
例如log文件日積月累,越來越大就需要給切割成若個小的文件
可以從下圖看到,切割成了很多個文件
du -sh * 查看每一個都是4k的原因是以塊顯示
du -sb * 以字節顯示,可以看到都是以字節顯示的了,按照上面切割時候的大小 1000bite
如果不指定切割的文件名,最後出來的文件都是以x開頭後面從a開始接,接到z之後再從b開始,如果不夠用就往後加長度。
不僅僅是可以用-b指定大小,還可以同時指定名字的前綴。
然後是-l 來以行為單位切割文件 可以看到6081行的文件切割成了7個文件 6個1000 1一個81
shell特殊符號
多條命令的情況
|| 或 表示如果第一個命令不成功才執行第二個命令,當然不局限於兩個命令之間,可以一直往下進行
因為第一個執行成功了,所以第二個沒有執行
&& 與,表示但凡遇到一個不成立的,後面都不再執行了。
生活中的場景,shell腳本,想創建一個目錄,首先判斷這個目錄是否存在。
[ -d jiabin] || mkdir jiabin
jiabin是否是一個目錄,前面執行失敗,也就是沒有這個目錄的時候,後面才會進行mkdir的操作
Linux20180424五周第五次課(4月24日)