是一串有規律的字符串php
grep ‘ abc123’ filename `- c : 行數,能夠用來計數,文本里出現多少次要找的字符串 `- i : 不區分大小寫 `- n : 顯示行號 `- v: 取反 `- r : 遍歷子目錄如下的文件,遍歷目錄用 -r `- A : 後面跟數字,過濾出符合要求的行以及下面的n行 `- B: 同上,過濾出符合要求的行以及上面的n行 `- C : 同上,同時過濾出符合要求的行以及上下各n行
把一個目錄下,過濾全部*.php
文檔中含有eval的行grep -r --include="*.php" 'eval' /data/
正則表達式
元字符編輯器
`*` 前一個字符匹配 0 次或 任意 屢次(星 號前一個字符不起做用) `.` 匹配除了換行符外 點號前面的任意 一個 字符 `+` 表示1次到屢次,\+也要脫義,不然用egrep ? ?號前面的字符匹配1或者0次,\?也要脫義,不然用egrep $ 匹配行首,列如 ^hello 會匹配以 hello 開頭的行 | 表示匹配多個字符 'root|nologin|aaa' [ ] 匹配中括號指定的任意一個字符,只匹配一個字符 例如:[0-9]匹配任意一個數字,[a-z][0-9]匹配小寫字母和一位數字構成的兩位字符 [^] 匹配除了中括號的字符之外的任意一個字符 例如:[^0-9] 匹配任意一位非數字字符。 [^a-z] 表示任意一位非小寫字符。 \ 轉移符,用於取消將特殊符號的含義取消 \{n\} 表示其前面的字符剛好出現n次 例如:[0-9]\{4\} 匹配4位數字 [1][3-8][0-9]\{9\} 匹配手機號碼 \{n,\} 表示其前面的字符出現 不小於n 次 例如:[0-9]\{2,\} 表示兩位以及以上的數字 \{n,m\} 表示其前面的字符出現 至少n 次,最多出現 m 次。 例如:[a-z]\{6,8\} 匹配6到8位的小寫字母 egrep = grep -E 能夠免去脫義符 egrep '{}' = grep '\{\}' = grep -E '{}'
輕量級流編輯器,主要用來將數據進行選取,替換,刪除,新增 `- r : 支持脫義 `- n : 通常會把全部的數據輸出到屏幕上,若是加入n選項,只會輸出已匹配的行,通常加入p 選項print `- e : 加多命令編輯 `- i : 修改,修改已讀數據文件,直接更改文件內容,sed -i '1,5'd 1.txt 動做,加在 '字符串'後面的 `- I : 不區分大小寫 `- d : 刪除指定行數 sed '1,10'd 1.txt 1-10行delete `- a :追加,在當前行後添加一行或者多行 `- c : 行替換,用c 後面的字符串替換原數據 `- i : 插入,在當前行前插入一行或者多行。d : 刪除,g : 全局 `- p : 打印,輸出指定的行 `- s : 字串替換,用一個字符串替換另外一個字符串 '行範圍s/舊字符串/新字符串/g' g : 表示全局,不加就表示一行
awk 工具 分段匹配 `- F 指定分割符 $1 表示 第一段, $0 表示全部 awk '{print $0}' 1.txt awk '{print $1,$3,$7}' 1.txt 默認分隔符爲空格,或者空白字符 `~` 匹配 後面的字符 也支持正則 支持多個表達式一塊兒寫 awk -F ':' '/root|user '{print $0}' 1.txt 數學運算 $3 > 100 大於100 $3 == 100 等於100 $3 < 100 小於100 $3 >= 100 大於等於100 $3 != 100 不等於 $3 > "5" && $3 < "7" 大於5小於7 &&與,||或 {OFS="#"} 內置變量,指定print打印用到的分割符# {NR} 行 'NR<=10' 前10行 {NF} 段 'NF==6' 第6段 {BEGIN} {END}