日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux sed 正则转义,Linux运维云升笔记 (一)正则表达式以及文档编辑器sed

發布時間:2024/9/27 linux 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux sed 正则转义,Linux运维云升笔记 (一)正则表达式以及文档编辑器sed 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

正則表達式概述

使用單個字符來描述、匹配一系列符合某個語句規則的字符串,由普通字符與特殊字符組成,正則表達式廣泛使用在腳本編程、文本編輯器中。

正則表達式簡寫為regex、regexp、RE。

再大多數語言當中正則表達式都被包括在兩個正斜杠當中“/”

正則表達式有一個特點“貪婪匹配”:盡量匹配最長的

正則表達式分類

基礎正則表達式

\ 轉義字符。例如:“!”將邏輯否的!看做普通字符,\還可以折行

例子1:

[root@localhost ~]# ls -l /home \

> /tmp

例子2:

[root@localhost ~]# grep "b.*in" a.txt

12 bin 34

23 sb.*in 23

44 binary 49

23 binlog 23

[root@localhost ~]# grep "b\.\*in" a.txt

23 sb.*in 23

^ 匹配字符串開始的位置,以…為開頭的

$ 匹配字符串結束的位置,以…為結尾的

^$ 表示空行,不是空格

例子:

[root@localhost ~]# cat a.txt

aa

aa bb aa

a b a

[root@localhost ~]# grep "^aa$" a.txt

aa

. 匹配任意字符串

* 匹配前面子表達式(字符)0次或者多次

例子:

[root@localhost ~]# grep "a 0*" a.txt

aa 0

aa 00

aa bb 0000 aa 00

a b a 000

.* 匹配任意字符串

[list] 匹配list列表中的一個字符,例如:[abc]、[a-z]、[a-zA-Z0-9]

例子:

[root@localhost ~]# ifconfig ens32 | grep "TX [pe]"

TX packets 1776 bytes 206946 (202.0 KiB)

TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

[^list] 匹配任意非list表中的一個字符,例如:[^a-z]、[^0-9]、[^A-Z0-9]

例子:

[root@localhost ~]# ifconfig ens32 | grep "TX [a-f]"

TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

[root@localhost ~]# ifconfig ens32 | grep "TX [^a-f]"

TX packets 1814 bytes 210662 (205.7 KiB)

\{n\} 匹配前面子表達式n次

例子:

[root@localhost ~]# grep "a 0\{2\}" a.txt

aa 00

aa bb 0000 aa 00

a b a 000

\{n,\} 匹配前面子表達式至少n次

[root@localhost ~]# grep "a 0\{2,\}" a.txt

aa 00

aa bb 0000 aa 00

a b a 000

\{n,m\} 匹配前面子表達式最少n次,最大m次

\< 詞首牟定:固定詞首

\> 詞未牟定:固定詞尾

例子:

[root@localhost ~]# grep "\" a.txt

a b a 000

轉義字符

意義

\a

響鈴(BEL)

\b

退格(BS),將當前位置移到前一列

\n

換行(LF)將當前位置移到下一行的開頭

\r

回車(CR)將當前位置移動到本行開頭

\t

水平制表(HT)調到下一個TAB位置

\v

垂直制表(VT)

\

代表一個反斜杠字符“\”

擴展正則表達式

+匹配前面子表達式1次及以上

? 匹配前面子表達式0次或者1次

() 將括號中的字符串作為一個整體

| 以或的方式匹配字符

Linux常用的文本處理工具

grep 匹配,查詢(過濾)

sed 編輯(增加,刪除,修改)

awk 文本格式化(字符串提取)

注意事項

Linux中正則一般以行為單位處理文件

alias grep=‘grep --color=auto’

注意字符集,LANG=C

通配符

正則表達式和我們命令行中使用的通配符是有本質區別的。

通配符一般是處理文件名的

ls -l .txt:任意長度任意字符串,屬于通配符。

?:單個任意字符串,屬于通配符。

grep命令的參數:

-v 排除匹配的內容(取反)

-E 支持擴展正則表達式=egrep

[root@localhost ~]# grep -Ev "^$|#" /etc/httpd/conf/httpd.conf

ServerRoot "/etc/httpd"

Listen 80

Include conf.modules.d/*.conf

-i 忽略大小寫

[root@localhost ~]# cat a.txt

aAAA

[root@localhost ~]# grep -i "a" a.txt

aAAA

[root@localhost ~]#

-o 只輸出匹配的內容

[root@localhost ~]# grep -o "root" /etc/passwd

root

root

–color=auto 匹配的內容顯示顏色(用的不多 alias查看別名)

-n 在行首顯示行號

[root@localhost ~]# grep -n "root" /etc/passwd

1:root:x:0:0:root:/root:/bin/bash

10:operator:x:11:0:operator:/root:/sbin/nologin

43:admin:x:1000:1000:root:/home/admin:/bin/bash

-q 匹配內容不顯示(靜默輸出,一般寫腳本的時候用而不輸出到屏幕)

-w 將過濾條件當成單詞來匹配

[root@localhost ~]# grep -w "bin" /etc/passwd

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

sync:x:5:0:sync:/sbin:/bin/sync

admin:x:1000:1000:root:/home/admin:/bin/bash

[root@localhost ~]# grep "bin" /etc/passwd

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

-c 只輸出匹配行的計數

[root@localhost ~]# grep -c "root" /etc/passwd

3

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的linux sed 正则转义,Linux运维云升笔记 (一)正则表达式以及文档编辑器sed的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。