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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

正则表达式,grep,sed,

發布時間:2025/3/14 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 正则表达式,grep,sed, 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

答案詳見:http://www.cnblogs.com/linhaifeng/p/6596660.html

作業一:整理正則表達式博客

?

^ # 行首定位 $ # 行尾定位 . # 匹配除換行符以外的任意字符 * # 匹配0或多個重復字符 + # 重復一次或更多次 ? # 重復零次或一次 ? # 結束貪婪因子 .*? 表示最小匹配 [] # 匹配一組中任意一個字符 [^] # 匹配不在指定組內的字符 \ # 用來轉義元字符 < # 詞首定位符(支持vi和grep) <love> # 詞尾定位符(支持vi和grep) love> x\{m\} # 重復出現m次 x\{m,\} # 重復出現至少m次 x\{m,n\} # 重復出現至少m次不超過n次 X? # 匹配出現零次或一次的大寫字母 X X+ # 匹配一個或多個字母 X () # 括號內的字符為一組 (ab|de)+ # 匹配一連串的(最少一個) abc 或 def;abc 和 def 將匹配 [[:alpha:]] # 代表所有字母不論大小寫 [[:lower:]] # 表示小寫字母 [[:upper:]] # 表示大寫字母 [[:digit:]] # 表示數字字符 [[:digit:][:lower:]] # 表示數字字符加小寫字母 ? 元字符 ? \d # 匹配任意一位數字 \D # 匹配任意單個非數字字符 \w # 匹配任意單個字母數字下劃線字符,同義詞是 [:alnum:] \W # 匹配非數字型的字符 ? ? ? 字符類:空白字符 ? \s # 匹配任意的空白符 \S # 匹配非空白字符 \b # 匹配單詞的開始或結束 \n # 匹配換行符 \r # 匹配回車符 \t # 匹配制表符 \b # 匹配退格符 \0 # 匹配空值字符 ? ? ? 字符類:錨定字符 ? \b # 匹配字邊界(不在[]中時) \B # 匹配非字邊界 \A # 匹配字符串開頭 \Z # 匹配字符串或行的末尾 \z # 只匹配字符串末尾 \G # 匹配前一次m//g離開之處 ? ? 捕獲 ? (exp) # 匹配exp,并捕獲文本到自動命名的組里 (?<name>exp) # 匹配exp,并捕獲文本到名稱為name的組里,也可以寫成(?'name'exp) (?:exp) # 匹配exp,不捕獲匹配的文本,也不給此分組分配組號 ? ? ? 零寬斷言 ? (?=exp) # 匹配exp前面的位置 (?<=exp) # 匹配exp后面的位置 (?!exp) # 匹配后面跟的不是exp的位置 (?<!--exp) # 匹配前面不是exp的位置 (?#comment) # 注釋不對正則表達式的處理產生任何影響,用于注釋 ? ? ? 特殊字符 ? http://en.wikipedia.org/wiki/Ascii_table ^H \010 \b ^M \015 \r 匹配特殊字符: ctrl+V ctrl不放在按H或M 即可輸出^H,用于匹配 --></name></love>

  

?


作業二:grep作業(正則表達式及字符處理)
目標文件/etc/passwd,使用grep命令或egrep
1.顯示出所有含有root的行:

grep "root" /etc/passwd


2.輸出任何包含bash的所有行,還要輸出緊接著這行的上下各兩行的內容:

grep -C 2 "bash" /etc/passwd


3. 顯示出有多少行含有nologin。

?

[root@python_lb yan]# grep -c "nologin" /etc/passwd

?


4.顯示出那些行含有root,并將行號一塊輸出。

?

[root@python_lb yan]# grep -n "root" /etc/passwd

?


5.顯示出文件中


6.新建用戶
abominable
abominate
anomie
atomize
編寫正則表達式,將他們匹配出來

?

[root@python_lb yan]# egrep '^a[a-z]+e' passwd


7.建四個用戶
Alex213sb
Wpq2222b
yH438PIG
egon666
egon

過濾出用戶名組成是字母+數字+字母的行

[root@python_lb yan]# grep -Eni '^[a-Z]+[0-9]+[a-Z]+' passwd
53:Alex213sb:x:1005:1005::/home/Alex213sb:/bin/bash
54:Wpq2222b:x:1006:1006::/home/Wpq2222b:/bin/bash
55:yH438PIG:x:1007:1007::/home/yH438PIG:/bin/bash


8.顯示出/etc目錄下所有包含root的文件名

?

[root@python_lb yan]# mkdir /etc/root
[root@python_lb yan]# mkdir /etc/1root
[root@python_lb yan]# mkdir /etc/root2
[root@python_lb yan]# ls /etc/|grep root
[root@python_lb yan]# ls /etc/*root*

?

9. 過濾掉/etc/ssh/sshd_config內所有注釋和所有空行

[root@python_lb yan]# grep -v "^$" /etc/ssh/sshd_config|grep -v "^#"


作業三:Sed作業:以/etc/passwd文件為模板

1,刪除文件每行的第一個字符。

?

[root@python_lb yan]# sed -r 's/^([a-Z0-9-])([a-Z0-9-]+)/\2/g' passwd

?

2,刪除文件每行的第二個字符。

?

[root@python_lb yan]# sed -r 's/^([a-Z0-9-])([a-Z0-9-])([a-Z0-9-]+)/\1\3/g' passwd

?

3,刪除文件每行的最后一個字符。

?

[root@python_lb yan]# sed -r 's/([a-Z]+)[a-Z]$/\1/g' passwd

?

4,刪除文件每行的倒數第二個字符。

?

[root@python_lb yan]# sed -r 's/^(.*)(.)(.)$/\1\3/g' passwd

?

5,刪除文件每行的第二個單詞。

?

[root@python_lb yan]# sed -r 's/^([a-Z]+)([^a-Z]+)([a-Z]+)([^a-Z]+)/\1\2\4/g' passwd
[root@python_lb yan]# sed -r 's/^([a-Z0-9-]+)([^a-Z]+)([a-Z]+)([^a-Z]+)/\1\2\4/g' passwd

?

6,刪除文件每行的倒數第二個單詞。

?

[root@python_lb yan]# sed -r 's/([a-Z]+)([^a-Z]+)([a-Z]+)$/\2\3/g' passwd

?

7,刪除文件每行的最后一個單詞。

?

[root@python_lb yan]# sed -r 's/([^a-Z]+)([a-Z]+)$/\1/g' passwd

?

8,交換每行的第一個字符和第二個字符。

?

[root@python_lb yan]# sed -r 's/(^[a-Z])([a-Z])/\2\1/g' passwd

?

9,交換每行的第一個字符和第二個單詞。

?

[root@python_lb yan]# sed -r 's/(^[a-Z])([a-Z0-9-]+)([^a-Z]+)([a-Z]+)/\4\2\3\1/g' passwd

?

10,交換每行的第一個單詞和最后一個單詞。

?
sed -r?'s/([a-Z]+)(.*)([^a-Z]+)([a-Z]+)$/\4\2\3\1/'?passwd

11,刪除一個文件中所有的數字。

?sed -r?'/[0-9]+//g'?passwd

12,刪除每行開頭的所有空格。

?sed -r?'s/^ *//g'?passwd

13,用制表符替換文件中出現的所有空格。

?sed -r?'s/ /\t/g'?/etc/passwd

14,把所有大寫字母用括號()括起來。

sed -r?'s/[A-Z]/(&)/g'?/etc/passwd ?


15,打印每行3次。

?sed?'p;p'?/etc/passwd

?

16,只顯示每行的第一個單詞。

?

sed?'1~2d'?/etc/passwd

17,打印每行的第一個單詞和第三個單詞。

?

18,用命令獲取格式為 mm/yy/dd 的日期格式,結合管道,將其換成 mm;yy;dd格式

?

?

轉載于:https://www.cnblogs.com/Baby-Lady/p/6600054.html

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的正则表达式,grep,sed,的全部內容,希望文章能夠幫你解決所遇到的問題。

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