正則表達式

正則表達式

是一串有規律的字符串php

grep

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 '{}'

sed 文本替換

輕量級流編輯器,主要用來將數據進行選取,替換,刪除,新增
    `- 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

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}
相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息