標籤:定位 變更 字元 包含 str 匹配 php tool 文本
find 檔案尋找
尋找txt和pdf檔案
find . \( -name "*.txt" -o -name "*.pdf" \) -print
尋找所有字母開頭的檔案
find . -name "[a-a]*"
否定參數->尋找所有非txt文本
find . ! -name "*.txt" -print
指定搜尋深度->列印出目前的目錄的檔案(深度為1)
find . -maxdepth 1 -type f
正則方式尋找.txt和pdf
find . -regex ".*\(\.txt|\.pdf\)$"-iregex: 忽略大小寫正則
尋找目錄下屬性為755的檔案
find . -prem 755
尋找所屬主為root的檔案
find -user root
尋找大於2k的檔案
find . -type f -size +2k
找到檔案後續動作
刪除目前的目錄下所有的avi檔案
find . -type f -name "*.avi" -delete
執行動作(強大的exec)
find . -type f -user root -exec chown root {} \; //將目前的目錄下的所有權變更為root
grep 文本搜尋
在file檔案中過濾掉字串‘str‘所在的行
grep -v "str" file
在file檔案中尋找時間在2017:22:50~2017:22:59所在的行
grep -E "2017:22:5[0-9]" file
在file檔案中尋找不包括360的行
grep -E "^[^360]" file
在file檔案中尋找包括w和t的行
grep -E "w*t" file
在file檔案中尋找大於560小於893的行
grep -E "[5-8][6-9][0-3]"
在file檔案中尋找包含兩個9的行
grep -E "9{2}" file
尋找大於兩個9的行
grep -E "9{2,}" file
尋找file檔案中的空行
grep -E "^$" file
尋找包括?的行
grep "?" file
尋找檔案中以w開頭的行
grep -E "^w" file
尋找檔案中不是以w開頭的行
grep -E "^[^w]" file
awk 資料流處理工具
尋找出記錄檔中的每一列
awk ‘{print $0}‘ log.log
尋找出檔案中的第一列和第七列
awk ‘{print %$1 "\t"$7}‘ log.log
~匹配192.168.10.2的ip地址統計。!~為不匹配
cat file | awk ‘$0 !~ /192.168.10.2/‘ | grep ‘php‘ |wc -|
sed 行定位
只列印第二行,不列印其它行的資料
sed -n ‘2‘p file
從第一行到第九行的記錄
sed -n ‘1,9‘p file
列印匹配php的行
sed -n ‘/php/p file
列印從第九行到匹配php的之間所有行
sed -n ‘9,/php/‘p file
把第一行和第二行全部刪除(非檔案刪除)
sed ‘1,2‘d file
Uniq行定位的使用
列印緊挨的重複行出現的次數
uniq -c file
只列印重複的行
uniq -d file
把apache網站的所有訪問ip統計出來,並列印統計次數
awk ‘{print $1}‘ /var/log/httpd/access_log | sort | uniq -c
sort排序的使用
把檔案喊字母的聖墟進行排序
sort file
把檔案按照字母的降序進行排序
sort -r file
為進行分割後的第一列來排序
cat file | sort -t: -k1 -r
幾個常用的文本處理shell 命令:find、grep、sort、uniq、sed、awk