亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Regex > 正文

正則表達式及Linux文本處理工具

2024-09-07 17:40:13
字體:
來源:轉載
供稿:網友

文本處理工具在正則表達式中是非常方便的一個工具,那么你知道正則表達式及Linuxd文本處理工具有哪些嗎?下面我們就跟錯新小編一起去看看具體的介紹吧,感興趣的朋友們趕緊收藏起來。

grep、sed和awk都是文本處理工具,雖然都是文本處理工具但卻都有各自的優缺點,一種文本處理命令是不能被另一個完全替換的,否則也不會出現三個文本處理命令了。

一、正則表達式

1、匹配字符的類型

[a-z]:小寫字母

[A-Z]:大寫字母

[a-Z]:小或大寫字母

[0-9]:數字

[a-zA-Z0-9]:表示匹配一個為字母或數字的字符

. :匹配1個任意字符,空格除外

[0-f]:16進制數

abc | def:abc或def
a (bc | de) f:abcf 或 adef

/<:單詞頭 單詞一般以空格或特殊字符做分隔,連續的字符串被當做單詞

/>:單詞尾

[^表達式]:除小寫字母以外的所有字符,如此類推。

2、后跟以下符號控制匹配的數量

此類符號的左側要有上面第一點的表達式

表達式*:0或n個字符

表達式+:1或n個字符

表達式?:0或1個字符

表達式{n}:n個字符

表達式{n:m}:n到m個字符

表達式{n,}:至少n個字符

【例】[a-z]*表示匹配0個或多個小寫字母

3、將匹配的字符控制在頭尾
^表達式:頭部符合

表達式$:尾部符合

二、Linux三大文本處理工具

1、egrep 篩選工具

grep的擴展版,可以使用正則表達式

語法:

egrep -選項? '正則表達式'? 文件名

選項:

-n :顯示行號
-o :只顯示匹配的內容
-q :靜默模式,沒有任何輸出,得用$?來判斷執行成功沒有,即有沒有過濾到想要的內容
-l :如果匹配成功,則只將文件名打印出來,失敗則不打印,通常-rl一起用,grep -rl 'root' /etc
-A :如果匹配成功,則將匹配行及其后n行一起打印出來
-B :如果匹配成功,則將匹配行及其前n行一起打印出來
-C :如果匹配成功,則將匹配行及其前后n行一起打印出來
--color
-c :如果匹配成功,則將匹配到的行數打印出來
-i :忽略大小寫
-v :取反,不匹配
-w:匹配單詞

2、sed 流編輯器

語法:

語法1:sed? -選項? '數字定位+命令'? 文件名

選項:

-n:靜默模式,不輸出
-e:多項編輯,這個不是很清楚
-i:直接修改文件內容,而不是輸出
-r:擴展模式,可使用正則表達式
-f:指定文件名,將動作寫在新的文件內

命令:

a ∶ 追加append,
c ∶ 改變change,
d ∶ 刪除delete,
i ∶ 插入insert, i 的后面可以接字串,而這些字串會在新的一行出現(目前的上一行)
p∶ 列印print
s∶ 取代substitute,可以直接進行替換的工作。通常這個 s 的動作可以搭配正則表達式。例如 1,20s/old/new/g

*s命令特別說明:

使用{命令1:命令2:命令3}可增加使用多個命令

語法2:sed? -r? '替換命令s/正則表達式/替換內容/貪婪選項g'? 文件名

定位的兩種方法:

①數字定位(輸入行序號定位)

十進制數
1:單行
1,3:范圍 從第一行到第三行
2,+4:匹配行后若干行
4,~3:從第四行到下一個3的倍數行
2~3:第二行起每間隔三行的行
$:尾行
1!:除了第一行以外的行

【例】sed -n '1p' /etc/passwd

②正則表達式定位

正則必須用//包裹起來

擴展正則需要用 -r 參數或轉義

替換可使用正則表達式的子模式,即小括號(),可以/1、/2代表子模式

【例】sed -r 's/(.)(.)//2/1/ file1 表示將匹配到的第一部分和第二部分替換

*貪婪選項:填上g,代表把一行中所有匹配項替換

3、awk 文本分析工具

由命令、正則(需要用//包圍起來)、比較和關系運算組合而成

使用option中的-F參數定義間隔符號

用$1,$2,$3等的順序表示files中每行以間隔符號分隔的各列不同域,NF變量表示當前記錄的字段數

語法

awk -選項 參數? '邏輯判斷{命令 變量1,變量2,變量3}' 文件名

選項

-F 定義字段分隔符,默認的分隔符是連續的空格或制表符
-v 定義變量并賦值 也可以借用次方式從shell變量中引入

AWK變量

NR 當前記錄的個數(全部文件連接后的統計)
FNR 當前記錄的個數(僅為當前文件的統計,非全部)
FS 字段分隔符 默認為連續空格或制表符,可以使用多個不同的符號做分隔符 -F[:/]
OFS 輸出字符的分隔符 默認是空格
# awk -F: 'OFS="=====" {print $1,$2}' /etc/passwd
root=====x
NF 當前讀入行的字段個數
ORS 輸出記錄分隔符 默認是換行
# awk -F: 'ORS="=====" {print $1,$2}' /etc/passwd
root x=====bin x=====
FILENAME 當前文件名

【例1】使用AWK變量

# awk '{print NR,FNR,$1}' file1 file2 1 1 aaaaa2 2 bbbbb3 3 ccccc4 1 dddddd5 2 eeeeee6 3 ffffff# 

【例2】引用shell變量的方法

# a=root# awk -v var=$a -F: '$1 == var {print $0}' /etc/passwd或者 把整個命令拆開傳遞,讓shell變量外露,# awk -F: '$1 == "'$a'" {print $0}' /etc/passwd# a=NF# awk -F: '{print $'$a'}' /etc/passwd

邏輯運算(可直接引用域進行運算)

= += -= /= *= 賦值

&& || ! 邏輯與 邏輯或 邏輯非

~ !~? 匹配正則或不匹配,正則需要用 /正則/ 包圍住
< <= > >= != ==? 關系 比較字符串時要把字符串用雙引號引起來

$ 字段引用:字段引用需要加$,而變量引用直接用變量名取

+ - * / % ++ --? 運算符

轉義序列

// /自身
/$ 轉義$
/t 制表符
/b 退格符
/r 回車符
/n 換行符
/c 取消換行

以上所述是小編給大家介紹的正則表達式及Linux文本處理工具的內容,希望對大家有所幫助,在此也非常感謝大家對錯新技術頻道網站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
www.日韩av.com| 欧美高跟鞋交xxxxhd| 欧美成aaa人片免费看| 中文字幕精品久久| 日本午夜精品理论片a级appf发布| 91精品国产91久久久久久最新| 国产激情综合五月久久| 国产成人一区二区三区| 日本欧美爱爱爱| 国产日韩精品视频| 色综合久久88色综合天天看泰| 国产主播欧美精品| 精品国产一区二区三区久久狼5月| 国产精品视频区| 国产成人高清激情视频在线观看| 国产精品视频一区国模私拍| 亚洲欧洲av一区二区| 亚洲精品成人av| 久久艳片www.17c.com| 日韩欧美视频一区二区三区| 久久深夜福利免费观看| 久久久久999| 亚洲第一福利网站| 亚洲精品99久久久久中文字幕| 中文字幕日韩精品在线| 国产精品入口免费视频一| 欧美老女人性视频| 欧洲一区二区视频| 中文字幕国产日韩| 国产精品亚洲视频在线观看| 国内揄拍国内精品少妇国语| 久久精品视频亚洲| 日本精品视频在线观看| 日韩欧美精品免费在线| 一本久久综合亚洲鲁鲁| 亚洲一区二区三区视频| 亚洲精品国产品国语在线| 日韩av中文字幕在线免费观看| 亚洲国产黄色片| 精品视频—区二区三区免费| 日韩中文字幕视频| 亚洲综合av影视| 日韩av综合网站| 国产精品一区二区久久| 亚洲美女精品久久| 精品久久久久国产| 久久久之久亚州精品露出| 国外成人性视频| 日韩av片免费在线观看| 日韩电影大片中文字幕| 成人网中文字幕| 中文字幕亚洲色图| 欧美日韩美女在线观看| 欧美亚洲视频一区二区| 国产专区欧美专区| 成人黄色网免费| 97精品国产aⅴ7777| 久久久99免费视频| 国产精品精品久久久久久| 日韩一区二区在线视频| 国产视频久久久久| 亚洲日韩中文字幕在线播放| 欧美电影在线观看| 九九热最新视频//这里只有精品| 欧美午夜www高清视频| 日韩av在线一区| 日本最新高清不卡中文字幕| 亚洲国产精品久久久久秋霞不卡| 精品露脸国产偷人在视频| 国产综合在线观看视频| 91久久精品国产| 亚洲深夜福利在线| 欧美最顶级的aⅴ艳星| 尤物yw午夜国产精品视频| 久久精品视频在线观看| 国产九九精品视频| 国产精品第一视频| 日本午夜在线亚洲.国产| 日韩av在线资源| 亚洲人成在线免费观看| 精品一区二区三区四区| 精品久久久一区二区| 久久99亚洲热视| 久久视频精品在线| 欧美裸体男粗大视频在线观看| 欧美激情欧美激情在线五月| 久久久久亚洲精品国产| 最新国产精品亚洲| 亚洲无线码在线一区观看| 1769国内精品视频在线播放| 日韩中文字幕在线观看| 久久久久久久一| 98视频在线噜噜噜国产| 亚洲国产精品资源| 国产欧美日韩中文字幕| 国产精品高清网站| 欧美激情xxxx| 亚洲男人天堂古典| 亚洲国产精品va在线看黑人| 亚洲成年人在线播放| 播播国产欧美激情| 久热国产精品视频| 亚洲大胆人体在线| 亚洲在线免费观看| 日韩精品一区二区三区第95| 日韩精品在线观| 亚洲色图欧美制服丝袜另类第一页| 欧美激情精品久久久| 2019最新中文字幕| 一区二区三区 在线观看视| 日韩av在线最新| 成人羞羞国产免费| 狠狠躁18三区二区一区| 欧洲亚洲女同hd| 91久热免费在线视频| 91在线免费视频| 中文字幕亚洲一区在线观看| 国外视频精品毛片| 久久网福利资源网站| 精品人伦一区二区三区蜜桃网站| 成人av电影天堂| 欧美裸体男粗大视频在线观看| 欧美高清电影在线看| 亚洲在线第一页| 欧美性极品xxxx做受| 欧美又大又粗又长| 91欧美精品午夜性色福利在线| 5278欧美一区二区三区| 91大神在线播放精品| 久久久久久午夜| 欧美性猛交xxxx乱大交3| 国产精品国模在线| 91国产精品91| 日韩国产精品亚洲а∨天堂免| 日韩欧美精品网址| 国产精品电影在线观看| 97视频在线免费观看| 日韩一区二区三区国产| 国产自产女人91一区在线观看| 这里只有精品在线观看| 国产一区二区三区网站| 国产精品高潮呻吟视频| 久久久国产精品x99av| 少妇高潮 亚洲精品| 日本a级片电影一区二区| 欧美激情亚洲激情| 日韩免费在线观看视频| 久久久亚洲网站| xvideos成人免费中文版| 国产精品亚洲第一区| 日韩有码在线电影| 日韩美女av在线免费观看| 日韩视频免费看| 97视频在线观看播放| 日韩成人激情在线| 欧美性猛交视频| 久久精品精品电影网| 国产精品福利久久久| 在线精品视频视频中文字幕| 91精品国产自产91精品| 国内精品久久久久久中文字幕| 国产999精品久久久| 欧美专区中文字幕| 欧美激情成人在线视频|