. cat
功能是連接多個文件並且打印到屏幕輸出,或重定向到指定的文件
五大功能:
1.查看文件內容 cat file.txt
2.合並文件內容 cat file1 file2>newfile3
3.創建便捷新文件 cat >file 輸入完成之后,使用ctrl+c結束即可
4.清空文件內容 cat /dev/null >file.txt
5.非交互式的編輯或者追加內容到文件尾部
cat>>file.txt<<EOF
1234
EOF
-n # 從1開始對多有輸出的內容按行編號
-b # 與-n類似,但是會忽略空白行
-A # 每行的行尾顯示$符號
. tac
反向顯示文件內容
. more
分頁顯示文件內容
.less
less is more.分頁顯示文件內容,但是不是一次性加載文件內容,而是根據需要進行加載
尤其是打開超大文件時,為了不影響磁盤IO,會使用此命令
. head
顯示文件內容頭部,默認輸出開頭10行
-n 指定顯示的行數,后面接n(數字)
-c 以字節為單位
. tail
顯示文件內容的尾部,默認輸出文件的最后10行
-f # 實時輸出文件變化后追加的數據 一般監控程序執行產生的日志,來定位問題
--pid=進程號 # 與-f參數連用,進程結束后自動退出tail命令
-n # 顯示行數
-c # 顯示字節數,用法基本與head差不多
. tailf
跟蹤日志文件
幾乎等同於 tail -f ,與之不同的是,如果文件不增長,name不會去訪問磁盤文件,也不會更改文件的訪問時間
. cut
從文件的每一行剪切字節,字符或字段,並將這些字節,字符,或字段輸出至標准輸出
-b # 以字節為單位進行分割
-n # 取消分割多字節字符,與選項-b一起使用
-c # 以字符為單位進行分割
-d # 自定義分隔符,默認以空格為分隔符
-f # 指定顯示那個區域,與-d配合使用
N # 第N個字節,字符,字段
N-
N-M
-M # 從第1到第M個。。
cut -b 3-5,10 xiaolizi.txt cut -b -3 xiaolizi.txt cut -b 3- xiaolizi.txt cut -b 3,3 xiaolizi.txt cut -c 2-10 xiaolizi.txt cut -d : -f 1 /etc/passwd cut -d : -f 3-5 /etc/passwd
. split
按照指定的行數或者指定的文件大小分割文件
split [OPTION]... [INPUT [PREFIX]]
-l # 指定分割后文件的最大行數
-b # 指定分割后文件的最大字節數
-a # 指定后綴長度,默認為2位字母
-d # 使用數字后綴
aplit -l 10 -a 3 /etc/inittab new2_ split -b 500k -d lvm lvm_
. paste
將文件按照行與行進行合並,中間默認使用空格隔開
paste test1 test2 paste -d: test1 test2 # 以:作為分隔符號 paste -s test1 # 將內容從列轉換為行
. sort
將如數的文件內容按照指定的規則進行排序,然后排序結果輸出
-n # 依照數值大小進行排序
-r # 倒序排序
-k # 按指定區間排序
-t # 指定分隔符
b # 忽略每行開頭存在的空格字符
-u # 去出重復行 單獨的命令uniq
sort -t " " -k2 xiaolizi.txt sort -n -t . -k3,3 -k4.1,4.3 arp.txt # -n:按數字排序 -t . :按 . 座位分隔域 -k3,3:按第三個字段開始到第三個字段結束排序 -k4.1,4.3:按第四個字段第一個字符開始,到第四個字段,第三個字符結束
. join
類似SQL語句中的join on語句,將文件里面關聯的內容進行合並,一般處理魚油相關性的文件
合並的文件內容要求是經過sort排序后的
. uniq
去除重復行
一般是是將sort排序后的內容,通過管道傳遞給uniq進行處理
-c # 取出重復行,並計算每行出現的次數
-d # 只顯示重復的行
-u # 只顯示唯一的行
cut -d '/' -f 3 xiaolizi.log|sort|uniq -c |sort -rn awk -F "/" '{print $3}' xiaolizi.log|sort|uniq -c|sort-rn