19Django-文章列表
[xf@xf-netdisk content-under]$ cat /home/xf/qqs/baidu/personal-code/content-under/log/影視庫有效關鍵詞和外鏈-log| sort -t $'\t' -k 2,2 -u > log/test-log
可以根據\t分割,用第2列排序
[xf@xf-netdisk content-under]$ cat /home/xf/files/novel/網盤需求-k| awk -F '\t' '{print $3}' > /home/xf/files/novel/網盤需求-k3
可以獲取文字檔案中的第三列資料
今天對awk、uniq、sort三個命令做了基礎功能的學習,這裡自己記錄一下:
1.awk(資料處理工具,將一行分割成多個“欄位”來處理)
awk -F '文字切割符'‘{處理過程}’ 檔名稱
如:cat /ect/passwd | awk -F ':' '{print $1}' #以:分割,列印第一列的資料;如果為$0表示整個檔案內容
cat /etc/passwd | awk -F ''BEGIN {print "begin,goto"} {print $1","$7} END {print “end,end”} #以空白符作為分割,列印begin,goto開始執行資訊,列印1,7行,以end,end結束
2.uniq命令用來過濾重複部分顯示檔案內容,這個命令讀取輸入檔案,並比較相鄰的行
引數:
-c 顯示輸出中,在每行行首加上本行在檔案中出現的次數
-d 只顯示重複行
-u 只顯示檔案中不重複的各行
-n 前n個欄位與每個欄位前的空白一起被忽略
+n 前n個字元被忽略,之前的字元被跳過(字元從0開始編號)
-f n與-n相同,這裡n是欄位數
-s n與+n相同,這裡n是字元數
常用: uniq -c 首行顯示檔案中出現的次數
3.sort 排序
引數:
-u 在輸出行中去除重複行
-r 預設的排序方式為升序,-r轉換為降序排列
-n 預設按照字元來排序出現10在2前面,-n以數值來排序
-t 後面設定間隔符
-k 指定列數
如:sort -n -k 2 -t : test.txt 以數值排序,按照第二列以“:”間隔來排列順序
以上簡單總結而已,後續如有其他使用,再更新!!!
日常使用相關:
1.擷取日誌中特定時間段的日誌內容
sed -n '/2016-08-25 09:44:10/,/2016-08-25 09:44:30/p' 1.txt > test.txt
2.nginx 訪問日誌統計訪問的url
擷取特定時間段的日誌
cat nginx.acc.log | egrep "12/Aug/2016" | sed -n '/14:59:44/,/15:47:23/p' > a.txt
排序
cat a.txt |awk -F '+0800' '{print $2}'| awk -F ' ' '{print $5}' | sort #對資料進行(ASCII)排序
去重,uniq -c 只會合併相鄰的記錄,所以在使用它之前,應該先進行排序
cat a.txt |awk -F '+0800' '{print $2}'| awk -F ' ' '{print $5}' | sort | uniq -c
再排序,得到 (次數 內容)的檔案, sort -k 1 -n -r 指定對第一行進行排序,-n 數字排序,以降序排列
cat a.txt |awk -F '+0800' '{print $2}'| awk -F ' ' '{print $5}' | sort | uniq -c | sort -k 1 -n -r
-----------------------------------
©著作權歸作者所有:來自51CTO部落格作者ttxsgoto的原創作品,如需轉載,請註明出處,否則將追究法律責任
awk、uniq、sort三個命令的基本用法