元字元:
^:只匹配行首,如^d匹配drwxr-x--x
$:只匹配行尾,如trouble$:匹配以trouble結尾的所有字元;^$:匹配空行
*:匹配0個或多個
:匹配字元或字串行,中間可以使用'
-','
,'來進行分割,如[1-5]匹配12345, [0-9]匹配0到9, [a-z],[a-za-z],[a-za-z0-9]等
\:遮蔽元字元的特殊含義,如
',",
||,^,
*,+等特殊字元
.:只匹配任意單個字元,如...x..x..x, 匹配drwxr-x--x
pattern\:用來匹配pattern出現的次數,n為次數
pattern\:含義同上,但至少匹配n次
pattern\:含義同上,但pattern出現的次數在n與m之間
find path -options [-print -exec -ok]
-name,如find ./ -name "[a-z]*" -print
-perm,如find . -perm 755 -print
-user,如find `pwd` -user root -print或者find `pwd` -user "root" -print
-group,如find ./ -group root -print
-mtime -n +n, 如改變時間在5天以內的
find /var/ -mtime -5 -print; 改變時間在3天以前的檔案
find /var/ -mtime +3 -print
-atime
-ctime
-size n[c]:查詢檔案長度為n塊的檔案,帶有c時表示檔案長度以位元組計, 如大於10m的檔案:
find . -size +10000000c -print
-nogroup
-nouser:find `pwd` -nouser -print
-newer file1 ! -newer file2:查詢比file1新但比file2舊的檔案, 如
find `pwd` -newer "spctab.lis" ! -newer "sp_6_7.lst" -print
-type:查詢某一型別的檔案,b:塊檔案,d:目錄, c:字元裝置檔案,p:管道檔案,l:符號鏈結檔案,f:普通檔案
如:find /etc/ -type d -print:查詢/etc目錄下的資料夾有哪些
-exec或ok來執行shell命令:如find /tmp/ -type f-execls -l {} \;
find /var/log -name "*.log" -mtime +5 -exec rm {} \;
xargs:由於當大量的內容傳遞給exec時,存在溢位問題,所以建議在能找到檔案時使用xargs命令
find ./ -perm -7 -print | xargs chmod o-w
-depth:先匹配所有檔案,再在子目錄中查詢
man find
-c:只輸出匹配行的計數
檢視檔案abc中包含「
[root@oracle11g ab]# grep -c "安裝" abc
751
-i:不區分大小寫
-h:查詢多檔案時不顯示檔名
-h:顯示檔名
-l:查詢多檔案時只輸出匹配字元的檔名
-n:顯示匹配行及行號
[root@oracle11g ab]# grep -n "scim-tables-0.5.6-7.i386" abc
742:安裝 scim-tables-0.5.6-7.i386
-s:不顯示不存在或無匹配文字的錯誤資訊
-v:顯示不包含匹配文字的所有行
shell 文字過濾
今天閒著沒事,把以前寫的shell再拿出來看好多都忘記了,於是自己用看了一邊資料 表是單個字元 一行的開始 d以開頭的 1 第三個為1的字元 字元要放在匹配的字元前面 一行的末尾 表示空行 匹配一行乙個字元的 字元要放在匹配的字元後面 匹配任意個字元 包括0個字元 可以遮蔽乙個特殊的字元 pas 這...
shell文字過濾器之grep
grep,sed和awk都是文字處理工具,雖然都是文字處理工具但卻都有各自的優缺點,一種文字處理命令時不能被另乙個完全替換的,否則也不會出現三個文字處理命令了。grep stream editor,文字過濾器,如果僅僅是過濾文字,可使用grep,其效率要比其他的高很多 awk 報告生成器,格式化以後...
shell文字過濾程式(十) cut命令
cut指揮類似至awk,從行內提取的資訊,它是乙個較弱的版本的功能awk。cut命令格式為 cut options filename 當中options有 d 指定與空格和t a b鍵不同的域分隔符。類似於awk的 f f field 指定剪下域數 c list 指定剪下字元數。首先我們來處理按 切...