find [path...] [options] [action] 默認選項爲 在當前目錄查找全部文件並顯示linux
-L 跟隨符號連接查找文件正則表達式
1 根據文件名查找shell
-name FILENAME 支持glob數組
-iname FILENAME 不區分大小寫 支持glob編輯器
-regex PATTERN 正則表達式文件名匹配函數
2 根據用戶查找ui
-user USERNAME 根據屬主查找命令行
-group GROUPNAME 根據屬組查找ip
-uid UID 根據UID查找string
-gid GID 根據GID查找
-nouser 查找沒有屬主的文件
-nogroup 查找沒有屬組的文件
3 根據文件屬性查找
-type [fdcblps] 查找指定類型的文件
-size [+|-]N<k|M|G>
+Nk 查找SIZE大於Nk的文件 >
-NM 查找SIZE小於Mk的文件 <
NG 查找SIZE屬於[(N-1)G, NG]的文件
4 根據時間查找
-<m|a|c>time [+|-]N
-<m|a|c>min [+|-]N
0表明當天 N表明查找N~N+1天前的文件 [N, N+1]
-N表明 查找N天前到如今的文件 <=N
+N表明 查找N+1天前的全部文件 >=N+1
-newer FILENAME 查找比FILENAME還要新的文件
5 根據權限查找
-perm [/|-]MODE
MODE 精確匹配權限查找
/MODE ugo任意一位匹配就知足條件
-MODE 文件權限徹底包含此權限就匹配
6 組合查找
-a 與
-o 或
-not 非
7 action
-print 顯示查找到的文件
-ls 相似ls -l同樣顯示文件詳細信息
-ok CMD {} \; 每一次操做都須要用戶確認的執行命令
-exec CMD {} \; 執行命令 不詢問
一些例子
1 查找當前系統上沒有屬主或屬組且最近1天內曾被訪問過的文件並將其屬主屬組均修改成root
find / \( -nouser -o -nogroup \) -a -atime -1 -exec chown root:root {} \;
2 查找/var目錄下大於1k的文件並顯示詳細信息
find /etc -size +1k -ls
3 查找/etc目錄下全部用戶都沒有寫權限的文件
grep是一個精確查找文本的命令
egrep = grep -e 擴展正則
-i 忽略大小寫
-v 反向查找 查找不匹配的
-AN 查找到的行與下面N行合併
-BN 查找到的行與上面N行合併
-CN 查找到的行與上面和下面N行合併
sed [options] [script] [file...] 文本處理流編輯器
-n 靜默模式
-i 修改原文件
-f 從文件讀入script
-e 同時執行多個操做 或者使用 ' 鍵入一系列命令
script組成: AddressCommand
Address
$表示最後一行 +N 匹配N行
StartLine[,Endline] 或使用正則 /RegExp/[,RegExp/]
Command
! 反命令 !p 把沒有匹配到的打印出來
y/OLD/NEW 相似tr命令的逐個替換
s/pattern/string/[gi] 查找並替換 也可以使用其餘分隔符避免轉義字符
a\string 在指定行後面追加新行string
i\string 在指定行前面添加新行string
r FILE 將指定的文件的內容追加到符合條件的後面
w FILE 將匹配內容另存至指定文件中 [>重定向是屏幕內容]
d刪除 p顯示 q退出 l顯示行尾$
& 匹配到的整串 \(..\) \1, \2 分組模式 = 當前行號
多行處理Command
n 下一行 N 這一行和下一行合併處理
DP和N配合多行中只處理第一行[多行刪除/打印]
跳轉命令
b 跳轉至:label 默認EOF
t 只有成功才跳轉 :label
awk [options] 'PATTERN { action }' [file...] 文本報告生成器
-f 從文件讀入script
-F 指定輸入分割符
-v 'VAR DECLARE'
PATTERN
Expression[, Expression] 表達式
Expression可用符號
<, <=, >, >=, ==, !=
~ 匹配 !~ 不匹配 in 範圍
/RegExp/ 正則
VAR
$0 整行 $1, $2, ... 列
FS 輸入分隔符 OFS 輸出分隔符
RS 輸入行分隔符 ORS 輸出行分隔符
NR 當前處理行數 多文件統計計數
FNR 當前處理行數 單個文件計數
NF 當前行有多少字段 $NF 最後一個字段
FILENAME 所處理的文件名
ARGC ARGV 命令行參數
ENVIRON 當前shell環境變量及其值的關聯數組
ACTION
BEGIN/END 處理以前/後 執行一次
'BEGIN{action}'
'END{action}'
printf 格式化打印
pirnt 簡單打印
ACTION中還能使用大量C風格控制語句以及內置函數
例子
awk -F: '{printf "%5s %i\n",$1,$3}' /etc/passwd
注
linux命令中的各種正則表達式有區別 [bre/ere]等
許多字符須要加\進行轉義
find /etc -not -perm /222