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

歡迎訪問 生活随笔!

生活随笔

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

linux

老男孩Linux运维第41期20171016第六周学习重点课堂记录

發布時間:2025/4/5 linux 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 老男孩Linux运维第41期20171016第六周学习重点课堂记录 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?
?

?

Week6課堂知識點總結

?

作者:Old_Pan

歸檔:學習筆記

2017/10/16

?

?

1章正則表達式與通配符... 2

1.1 特殊符號... 2

1.2 通配符... 3

1.3 {} 生成序列... 4

1.4 正則表達式... 5

1.4.1 什么是正則... 5

1.4.2 使用正則的時候注意事項... 5

1.4.3 正則表達式與通配符區別... 6

1.4.4 正則表達式分類... 6

1.4.5 準備測試環境... 6

1.4.6 基礎正則... 6

1.4.7 擴展正則ERE. 13

1.4.8 正則表達式總結... 21

1.4.9 基礎正則與擴展正則區別:21

2章練習題... 21

2.1 刪除掉文件中的空行... 21

2.2 取出eth0網卡的ip地址... 22

2.2.1 方法1awk 3個管道... 22

2.2.2 方法2awk 2個管道... 23

2.2.3 方法3awk 1個管道... 23

2.2.4 方法4awk 1個管道... 23

2.2.5 方法5grep 正則... 24

2.3 取出文件的數字權限 644 0644. 25

?

?

?

?

?

?

第1章 正則表達式與通配符

1.1?特殊符號

?

特殊符號

作用

單引號''

對括號中的內容不作任何解析,所見即所得,吃啥吐啥

雙引號""

和單引號類似,但是特殊符號會被解析 運行 $ $() `` !

反引號``

=== $() 先運行里面的命令,然后把顯示到屏幕上的內容留下..

#

表示注釋以及root用戶命令提示符

$

1.取變量里面的內容,例:$LANG$PATH

2.普通用戶的命令提示符 ?

3.sed -n '$p' oldboy.txt

4.awk? ?$1 $2? $NF 取某一列

5.NR----number of record(行號)?

!

1.使用運行歷史命令history,例:!nn是第幾條歷史命令

2.find awk表示取反、非

*

通配符,表示匹配一切

&&

前一個命令運行成功,再運行后面的命令,例:ifdown eth0 && ifup eth0

||

前一個命令運行失敗,再運行后面的命令

|

管道

?

通配符,表示匹配任意一個字符

\

1.轉義符號

2.臨時取消別名

?

?

?

1.2?通配符

通配符作用:用來匹配文件名

?

* 所有、任何東西

找出以 *.txt*.log

ls -l *.txt *.log?

?

找出/oldboy 目錄中 文件名中包含oldboy的文件

??????mkdir?-p/oldboytouch/oldboy/oldboy{01..10}.txt?/oldboy/stu-oldboy{01..10}.txt??oldboy?oldboy.txtfind/oldboy/??-name?*oldboy*



1.3?{} 生成序列

?#生成序列

?????echo {a..z}

?????echo {1..10}

?????echo {01..10}

?????echo {001..10}

?????echo {01..10}

?????echo {01..100}

?

?#指定每次變化多少

[root@oldboyedu41-1?tmp]#?echo?{01..10..2} 01?03?05?07?09 [root@oldboyedu41-1?tmp]#?echo?{a..z..2} a?c?e?g?i?k?m?o?q?s?u?w?y [root@oldboyedu41-1?tmp]#?echo?stu{01,05,10} stu01?stu05?stu10


?#通過{}對某個文件進行備份

[root@oldboyedu41-nb?oldboy]#?echo?A{B,C} AB?AC [root@oldboyedu41-nb?oldboy]#?echo?A{,C} A?AC [root@oldboyedu41-nb?oldboy]# [root@oldboyedu41-nb?oldboy]#?echo?oldboy.txt{,C} oldboy.txt?oldboy.txtC [root@oldboyedu41-nb?oldboy]#?echo?oldboy.txt{,.bak}oldboy.txt?oldboy.txt.bak [root@oldboyedu41-nb?oldboy]#?touch?oldboy.txt [root@oldboyedu41-nb?oldboy]#?cp?oldboy.txt{,.bak} [root@oldboyedu41-nb?oldboy]#?#cp?oldboy.txt{,.bak} [root@oldboyedu41-nb?oldboy]#?#cp?oldboy.txt?oldboy.txt.bak [root@oldboyedu41-nb?oldboy]#?echo?oldboy.txt{,.bak} oldboy.txt?oldboy.txt.bak

?

1.4 正則表達式

1.4.1 什么是正則

又稱規則表達式。(英語:RegularExpression,在代碼中常簡寫為regex、regexp或RE),計算機科學的一個概念。正則表通常被用來檢索、替換那些符合某個模式(規則)的文本。

創建試驗環境:

cat?>?test.txt?<<EOF oldboy?230xxxxxxxxxxxxxxxxxxx oldboy01 oldboy43.txt oldboy-lidao.txt oldboybaby oldbabay EOF

?

找出文件中包含數字的行

grep "[0-9]" test.txt


通過一種符合表示不同的數字 字母 ====== 正則表達式(特殊符號 ^ $ + . * 表示各種不同的字符)

???

1.4.2 使用正則的時候注意事項

?????1# 正則表達式是高級貨色linux三劍客 grep sed awk

?????2# 正則表達式匹配按照行為單位的

?????grep "^oldboy" oldboy.txt

?????3# 使用的時候注意 使用英文符號,??? 禁止使用中文符號

?????4# 給grep/egrep 加上一個別名可以增加顏色區分顯示結果

?????

?????cat?>>/etc/profile<<EOFalias?grep='grep?--color=auto'alias?egrep='egrep?--color=auto'EOFsource?/etc/profile[root@oldboyedu41-nb?oldboy]#?alias?grep?egrep?alias?grep='grep?--color=auto'alias?egrep='egrep?--color=auto'

1.4.3 正則表達式與通配符區別

?????1# 正則表達式高級貨色????????查找文件內容 文字符號 grep sed awk 三劍客支持? python java

?????2# 通配符????????查找文件名字大部分linux命令都可以使用 通配符 *.txt? *.log

?????

1.4.4 正則表達式分類

1、?基礎正則? ^? $?.? *? []???basic???? regular? expression?BRE

2、擴展正則? +? |? (){} ?????? extended? regular?expression? ERE

1.4.5 準備測試環境

[root@oldboyedu41-nb?oldboy]#?cat?-noldboy.txt1??I?am?oldboy?teacher!2??I?teach?linux.3??4??I?like?badminton?ball?,billiardball?and?chinese?chess!5??my?blog?ishttp://oldboy.blog.51cto.com?6??our?site?ishttp://www.etiantian.org?7??my?qq?num?is?49000448.8??9??not?4900000448.10??my?god?,i?am?not?oldbey,butOLDBOY!


1.4.6 基礎正則

1.4.6.1??^? 表示以....開頭的行

[root@oldboyedu41-nb?oldboy]#?grep"^m"?oldboy.txt my?blog?is?http://oldboy.blog.51cto.com? my?qq?num?is?49000448. my?god?,i?am?not?oldbey,but?OLDBOY!

1.4.6.2??$? ....結尾的行

cat -A可以在文件每一行最后加上結尾符$

[root@oldboyedu41-nb?oldboy]#?cat?-Aoldboy.txt I?am?oldboy?teacher!$ I?teach?linux.$ $ I?like?badminton?ball?,billiard?ball?andchinese?chess!$ my?blog?is?http://oldboy.blog.51cto.com$ our?site?is?http://www.etiantian.org$ my?qq?num?is?49000448.$ $ not?4900000448.$ my?god?,i?am?not?oldbey,but?OLDBOY!$ [root@oldboyedu41-nb?oldboy]#?grep"m$"?oldboy.txt my?blog?is?http://oldboy.blog.51cto.com

1.4.6.3??空行 ^$ 這一行中沒有任何符號

[root@oldboyedu41-nb?oldboy]#?grep?-n"^$"?oldboy.txt 3: 8: [root@oldboyedu41-nb?oldboy]#?cat?-noldboy.txt1??I?am?oldboy?teacher!2??I?teach?linux.3??4??I?like?badminton?ball?,billiardball?and?chinese?chess!5??my?blog?ishttp://oldboy.blog.51cto.com6??our?site?ishttp://www.etiantian.org7??my?qq?num?is?49000448.8??9??not?4900000448.10??my?god?,i?am?not?oldbey,butOLDBOY!

?#排除空行

[root@oldboyedu41-nb?oldboy]#?grep?-v"^$"?oldboy.txt I?am?oldboy?teacher! I?teach?linux. I?like?badminton?ball?,billiard?ball?andchinese?chess! my?blog?is?http://oldboy.blog.51cto.com our?site?is?http://www.etiantian.org my?qq?num?is?49000448. not?4900000448. my?god?,i?am?not?oldbey,but?OLDBOY!

1.4.6.4??.()? 匹配任意一個字符不匹配空行

[root@oldboyedu41-nb?oldboy]#?#grep?-o??"."?oldboy.txt [root@oldboyedu41-nb?oldboy]#?#-o?grep命令每次?匹配到了什么 [root@oldboyedu41-nb?oldboy]#?grep?-o??"."?oldboy.txt

1.4.6.5??\? 轉義字符 脫掉馬甲 打回原形

#找出文件中oldboy.txt .結尾的行?

[root@oldboyedu41-nb?oldboy]#?grep"\.$"?oldboy.txt I?teach?linux. my?qq?num?is?49000448. not?4900000448.

???\n? 回車換行??

?????

#^ $?^$? .

#grep -o 顯示grep命令每次找到的內容??????

???

1.4.6.6??* 前一個字符連續出現0次或1次以上?>=0? ?

[root@oldboyedu41-nb?oldboy]#?grep"0"?oldboy.txt my?qq?num?is?49000448. not?4900000448. [root@oldboyedu41-nb?oldboy]#?grep?-o"0"?oldboy.txt 0 0 0 0 0 0 0 0 [root@oldboyedu41-nb?oldboy]#?grep?-on"0"?oldboy.txt 7:0 7:0 7:0 9:0 9:0 9:0 9:0 9:0


[root@oldboyedu41-nb?oldboy]#?grep"0*"?oldboy.txt I?am?oldboy?teacher! I?teach?linux.I?like?badminton?ball?,billiard?ball?andchinese?chess! my?blog?is?http://oldboy.blog.51cto.com our?site?is?http://www.etiantian.org my?qq?num?is?49000448.not?4900000448. my?god?,i?am?not?oldbey,but?OLDBOY! [root@oldboyedu41-nb?oldboy]#?grep?-o"0*"?oldboy.txt 000 00000


連續出現

0

0000?

000000???

???

####正則中表示連續出現或所有的時候 ----- 貪婪性

? ?

???#"0*" 為何會把整個文件的內容顯示出來

??? #0連續出現了1次以上?000 00000? 0000000

??? #0連續出現了0??會把整個文件的內容都顯示出來"0*"? ==== ""

???grep ""? oldboy.txt

????I am oldboy teacher!

????I teach linux.

???

??? Ilike badminton ball ,billiard ball and chinese chess!

???my blog is http://oldboy.blog.51cto.com

???our site is http://www.etiantian.org

???my qq num is 49000448.

???

???not 4900000448.

???my god ,i am not oldbey,but OLDBOY!

?

1.4.6.7??.* 所有任何東西

[root@oldboyedu41-nb?oldboy]#?grep?-n"^.*o"?oldboy.txt 1:I?am?oldboy?teacher! 4:I?like?badminton?ball?,billiard?ball?andchinese?chess! 5:my?blog?is?http://oldboy.blog.51cto.com 6:our?site?is?http://www.etiantian.org 9:not?4900000448. 10:my?god?,i?am?not?oldbey,but?OLDBOY! [root@oldboyedu41-nb?oldboy]#?#????#正則中表示連續出現或所有的時候?-----?貪婪性 [root@oldboyedu41-nb?oldboy]#??????#有多少匹配多少有多少吃多少


???????#我要找以m開頭的行 并且 m結尾的行

[root@oldboyedu41-nb?oldboy]#?##我要找以m開頭的行并且?以m結尾的行 [root@oldboyedu41-nb?oldboy]#?grep"^m"?oldboy.txt my?blog?is?http://oldboy.blog.51cto.com my?qq?num?is?49000448. my?god?,i?am?not?oldbey,but?OLDBOY! [root@oldboyedu41-nb?oldboy]#?grep"^m$"?oldboy.txt [root@oldboyedu41-nb?oldboy]#?#grep"^m什么都可以m$"oldboy.txt [root@oldboyedu41-nb?oldboy]#?grep?"^m什么都可以m$"?oldboy.txt [root@oldboyedu41-nb?oldboy]#?grep"^m.*m$"?oldboy.txt my?blog?is?http://oldboy.blog.51cto.com

1.4.6.8??[]?[abc] 表示一個整體相當于是一個符號 表示包含a或者b或者c的行

??????????grep "[abc]"????????oldboy.txt

??????????grep "[a-z]"????????oldboy.txt

??????????grep "[A-Z]"????????oldboy.txt

??????????grep "[a-zA-Z]"?????oldboy.txt

??????????grep "[0-9]"????????oldboy.txt

??????????grep "[a-zA-Z0-9]"??oldboy.txt

???????

練習3: mno開頭的 并且以 ?mg 結尾的行

[root@oldboyedu41-nb?oldboy]#?grep"^[mno]"?oldboy.txt my?blog?is?http://oldboy.blog.51cto.com our?site?is?http://www.etiantian.org my?qq?num?is?49000448. not?4900000448. my?god?,i?am?not?oldbey,but?OLDBOY! [root@oldboyedu41-nb?oldboy]#?grep?"^[mno].*[mg]$"oldboy.txt my?blog?is?http://oldboy.blog.51cto.com our?site?is?http://www.etiantian.org


[root@oldboyedu-41-01?tmp]#?grep"[a-Z]"?oldboy.txt


[root@Centos6p9m1?oldboy]#?grep"^[m|n|o].*[m|g]$"?oldboy.txt [root@Centos6p9m1?oldboy]#?grep"^[m,n,o].*[m,g]$"?oldboy.txt [root@oldboyedu41-nb?oldboy]#?#在正則中括號中?特殊符號(正則表達式符號)?一般都沒有特殊含義 [root@oldboyedu41-nb?oldboy]#?#grep"\.$" [root@oldboyedu41-nb?oldboy]#?#grep"[.]$"


問題:-? 表示非特殊符號? 在這里怎么是從a到z啦?

?


1.4.6.9??[^]?[^abc] 表示一個整體相當于是一個符號 表示包含a或者b或者c的行

?????????????????? 第一個位置 排除

[root@oldboyedu41-nb?oldboy]#?grep"[xlc]"?oldboy.txt I?am?oldboy?teacher! I?teach?linux. I?like?badminton?ball?,billiard?ball?andchinese?chess! my?blog?is?http://oldboy.blog.51cto.com my?god?,i?am?not?oldbey,but?OLDBOY! [root@oldboyedu41-nb?oldboy]#?grep"[^xlc]"?oldboy.txt I?am?oldboy?teacher! I?teach?linux. I?like?badminton?ball?,billiard?ball?andchinese?chess! my?blog?is?http://oldboy.blog.51cto.com our?site?is?http://www.etiantian.org my?qq?num?is?49000448. not?4900000448. my?god?,i?am?not?oldbey,but?OLDBOY!


[root@Gloria?~]#?grep"[^m^n^o].*[m$g$]"?oldboy.txt


[^m^n^o]表示 :?排除m^no

?


[root@oldboyedu oldboy]# grep"[^m-m$]" oldboy.txt??

???

1.4.6.10??基礎正則表達式小結:

(1)?? .^? $? ^$?.*? [abc]?

(2)?? grep? grep -o ??????????? -o參數把找到的東西顯示出來

?

1.4.7 擴展正則ERE

1.4.7.1??+? 前一個字符連續出現1次或多次 >=1

[root@oldboyedu41-nb?oldboy]#?grep"0+"?oldboy.txt [root@oldboyedu41-nb?oldboy]#?egrep"0+"?oldboy.txt my?qq?num?is?49000448. not?4900000448. [root@oldboyedu41-nb?oldboy]#?#egrep?===grep?-E? [root@oldboyedu41-nb?oldboy]#?egrep"0+"?oldboy.txt?-o 000 00000 [root@oldboyedu41-nb?oldboy]#?#取出文件中連續出現的小寫字母? [root@oldboyedu41-nb?oldboy]#?egrep'[a-z]+'?oldboy.txt I?am?oldboy?teacher! I?teach?linux. I?like?badminton?ball?,billiard?ball?andchinese?chess! my?blog?is?http://oldboy.blog.51cto.com our?site?is?http://www.etiantian.org my?qq?num?is?49000448. not?4900000448. my?god?,i?am?not?oldbey,but?OLDBOY! -----oooo [root@oldboyedu41-nb?oldboy]#?egrep?'[a-z]+'oldboy.txt?-o#連續出現?000000??00000??abcd? [root@oldboyedu41-nb?oldboy]#?egrep"[0-9]"?oldboy.txt my?blog?is?http://oldboy.blog.51cto.com my?qq?num?is?49000448. not?4900000448. [root@oldboyedu41-nb?oldboy]#?egrep"[0-9]"?oldboy.txt?-o 5 1 4 9 0 0 0 4 4 8 4 9 0 0 0 0 0 4 4 8 [root@oldboyedu41-nb?oldboy]#? [root@oldboyedu41-nb?oldboy]#?egrep"[0-9]+"?oldboy.txt? my?blog?is?http://oldboy.blog.51cto.com my?qq?num?is?49000448. not?4900000448. [root@oldboyedu41-nb?oldboy]#?egrep"[0-9]+"?oldboy.txt??-o 51 49000448 4900000448 [root@oldboyedu41-nb?oldboy]#?#+?連續出現的東西?一次性取出來?變為一個整體

1.4.7.2??| 表示或者

[root@oldboyedu41-nb?oldboy]#?egrep?'a|b|c'oldboy.txt I?am?oldboy?teacher! I?teach?linux. I?like?badminton?ball?,billiard?ball?andchinese?chess! my?blog?is?http://oldboy.blog.51cto.com our?site?is?http://www.etiantian.org my?god?,i?am?not?oldbey,but?OLDBOY! [root@oldboyedu41-nb?oldboy]#?egrep"[abc]"?oldboy.txt I?am?oldboy?teacher! I?teach?linux. I?like?badminton?ball?,billiard?ball?andchinese?chess! my?blog?is?http://oldboy.blog.51cto.com our?site?is?http://www.etiantian.org my?god?,i?am?not?oldbey,but?OLDBOY! [root@oldboyedu41-nb?oldboy]#? [root@oldboyedu41-nb?oldboy]#?egrep"oldboy|oldbey"?oldboy.txt I?am?oldboy?teacher! my?blog?is?http://oldboy.blog.51cto.com my?god?,i?am?not?oldbey,but?OLDBOY!

1.4.7.3??() 的作用:1括號里面的內容相當于是一個整體,先算括號里面的內容;2反向引用(sed

[root@oldboyedu41-nb?oldboy]#?egrep"oldboy|oldbey"?oldboy.txt I?am?oldboy?teacher! my?blog?is?http://oldboy.blog.51cto.com my?god?,i?am?not?oldbey,but?OLDBOY! [root@oldboyedu41-nb?oldboy]#?egrep"oldbo|ey"?oldboy.txt I?am?oldboy?teacher! my?blog?is?http://oldboy.blog.51cto.com my?god?,i?am?not?oldbey,but?OLDBOY! [root@oldboyedu41-nb?oldboy]#?egrep"oldb(o|e)y"?oldboy.txt I?am?oldboy?teacher! my?blog?is?http://oldboy.blog.51cto.com my?god?,i?am?not?oldbey,but?OLDBOY!

2、反向引用(sed 先保護再使用

[root@oldboyedu41-nb?oldboy]#?echo?123456 123456 [root@oldboyedu41-nb?oldboy]#?echo?123456 123456 [root@oldboyedu41-nb?oldboy]#?echo123456|sed?'s#.*##g'[root@oldboyedu41-nb?oldboy]#?echo?123456|sed's#.*#a#g' a [root@oldboyedu41-nb?oldboy]##<123456> [root@oldboyedu41-nb?oldboy]#?echo123456|sed?-r?'s#(.*)#\1#g' 123456 [root@oldboyedu41-nb?oldboy]#?echo123456|sed?-r?'s#(.*)#<\1>#g' <123456>


[root@oldboyedu41-nb?oldboy]#?echo123456|sed?-r?'s#(.*)#\1#g' 123456 [root@oldboyedu41-nb?oldboy]#?echo123456|sed?-r?'s#(.*)#@@@\1@@@@#g' @@@123456@@@@ [root@oldboyedu41-nb?oldboy]#?echo123456|sed?-r?'s#(.*)#<\1>#g' <123456> [root@oldboyedu41-nb?oldboy]#? [root@oldboyedu41-nb?oldboy]#?echo123456|sed?-r?'s#..(.)...#\1#g' 3 [root@oldboyedu41-nb?oldboy]#?echo123456|sed?-r?'s#..(.)...#\2#g' sed:?-e?expression?#1,?char?15:?invalidreference?\2?on?`s'?command's?RHS [root@oldboyedu41-nb?oldboy]#?echo123456|sed?-r?'s#(.).(.)...#\2#g' 3


echo 123456 |sed -r 's#(1)(5)#+\1+3\23#g'

?

[root@instance-kapw2maf?~]#?echo?123456|sed?'s#(.)(.)(.)#<\2>#g'?-r <2><5>


1.4.7.4??a{n,m} 0{n,m}?前一個字符連續出現了最少n次,最多出現了m

???

???*? >=0

???+? >=1

?

[root@oldboyedu41-nb?oldboy]#?egrep'0{1,3}'?oldboy.txt my?qq?num?is?49000448. not?4900000448. [root@oldboyedu41-nb?oldboy]#?egrep'0{1,3}'?oldboy.txt?-o 000 000 00 [root@oldboyedu41-nb?oldboy]#?egrep'0{1,3}'?oldboy.txt?-on 7:000 9:000 9:00 [root@oldboyedu41-nb?oldboy]#?egrep'0{1,3}'?oldboy.txt? [root@oldboyedu41-nb?oldboy]#?egrep?'0{2,4}'oldboy.txt? my?qq?num?is?49000448. not?4900000448. [root@oldboyedu41-nb?oldboy]#?egrep'0{2,4}'?oldboy.txt??-o 000 0000 [root@oldboyedu41-nb?oldboy]#?egrep'0{2,4}'?oldboy.txt??-on 7:000 9:0000#找出文件中連續出現5次到6次的字母 [root@oldboyedu41-nb?oldboy]#?egrep???'[a-z]{5,6}'?oldboy.txt I?am?oldboy?teacher! I?teach?linux. I?like?badminton?ball?,billiard?ball?andchinese?chess! my?blog?is?http://oldboy.blog.51cto.com our?site?is?http://www.etiantian.org my?god?,i?am?not?oldbey,but?OLDBOY! [root@oldboyedu41-nb?oldboy]#?egrep??-w?'[a-z]{5,6}'?oldboy.txt I?am?oldboy?teacher! I?teach?linux. I?like?badminton?ball?,billiard?ball?andchinese?chess! my?blog?is?http://oldboy.blog.51cto.com my?god?,i?am?not?oldbey,but?OLDBOY! [root@oldboyedu41-nb?oldboy]#? [root@oldboyedu41-nb?oldboy]#?egrep??-wo?'[a-z]{5,6}'?oldboy.txt oldboy teach linux chess oldboy oldbey [root@oldboyedu41-nb?oldboy]#?egrep??-won?'[a-z]{5,6}'?oldboy.txt 1:oldboy 2:teach 2:linux 4:chess 5:oldboy 10:oldbey [root@oldboyedu41-nb?oldboy]#?egrep??-woni?'[a-z]{5,6}'?oldboy.txt 1:oldboy 2:teach 2:linux 4:chess 5:oldboy 10:oldbey 10:OLDBOY#-w?grep按照單詞進行匹配(全字符精確匹配/完全匹配)grep?oldboy?test.txt? oldboy? oldboybaby? testoldboy helloldboy?grep?-w?oldboy?test.txt? oldboy


[root@oldboyedu oldboy]# egrep '[a-z]+ {1,5}' oldboy.txt -o????????????? 這樣會不會有沖突?

?

#找出文件中的QQ號碼?

[root@oldboyedu41-nb?oldboy]#?##找出文件中的QQ號碼 [root@oldboyedu41-nb?oldboy]#?egrep"[0-9]"?oldboy.txt my?blog?is?http://oldboy.blog.51cto.com my?qq?num?is?49000448. not?4900000448. [root@oldboyedu41-nb?oldboy]#?egrep"[0-9]{5,}"?oldboy.txt my?qq?num?is?49000448. not?4900000448. [root@oldboyedu41-nb?oldboy]#?egrep"[0-9]{5,}"?oldboy.txt?-o 49000448 4900000448


#-i 不區分大小寫? aA

#-w 按照單詞進行匹配(全字符精確匹配/完全匹配)

#-n 顯示行號

#-o 顯示grep執行過程? grep正則每次匹配到的內容顯示出來

?

[root@oldboyedu41-nb?oldboy]#?egrep??'[0-9]{5}'?oldboy.txt my?qq?num?is?49000448. not?4900000448. [root@oldboyedu41-nb?oldboy]#?egrep??'[0-9]{5}'?oldboy.txt?-o 49000 49000 00448

{}小結:

1. a{n,m}???? 前一個字符連續出現了最少n次,最多出現了m???????? >=n?? <=m

2. a{n,}??????? 前一個字符連續出現了最少n????????????????????????????????????????? >=n

3. a{n}???????? 前一個字符連續出現了n????????????????????????????????????????????????? ==n

? ??

1.4.7.5???? 前一個字符連續出現了0次或1

[root@oldboyedu41-nb?oldboy]#?egrep"go?d"?a.log? gd??? god[root@oldboyedu41-nb?oldboy]#?egrep"go*d"?a.log? good gd??? god goood


1.4.8 正則表達式總結

???? 連續出現(重復)

???????????*??????? >=0

???????????+??????? >=1

??????????????????? 0 1

???????????{n,m}??? >=n? <=m

???? 其他

???????????.??????? 任意一個字符

???????????[abc]?????? 一個整體 相當于是一個字符

???????????????????? [a-z] [0-9] [A-Z]

???????????[^abc]?? 排除??????

??????????? |??????? 或者

???????????()?????? 后向引用?反向引用? 先保護再使用

???????????^

???????????$

1.4.9 基礎正則與擴展正則區別:

?

支持基礎正則

支持基礎+擴展正則

grep

egrep或者grep -E

sed

sed ?-r

awk

?

第2章 練習題

2.1 刪除掉文件中的空行

創建測試環境:

cat?>/tmp/blank.txt<<EOF welcome?to?oldboy?linux.welcome?to?join?us.have?fun.lidao.oldboyedu.comDr.Tan? EOF


?#grep排除??

?grep-v? "^$"????? blank.txt

?egrep -v "^$|^ +$" ?blank.txt

?egrep -v "^ *$"??? blank.txt

?

?^ *$

?*表示0次的時候就是 ^$

?*表示1次以上的時候就是 ^多個空格$

?

?

?#sed刪除

?sed'找誰干啥' file

?sed'/^ *$/d' blank.txt????

?

?#awk排除 取反

?awk'/^ *$/' blank.txt

?awk'!/^ *$/' blank.txt

?

2.2 取出eth0網卡的ip地址

2.2.1 方法1awk 3個管道

[root@oldboyedu41-nb?oldboy]#?ifconfig?eth0?|awk'NR==2'inet?addr:10.0.0.200?Bcast:10.0.0.255?Mask:255.255.255.0 [root@oldboyedu41-nb?oldboy]#?ifconfig?eth0?|awk'NR==2'|cut?-d?"?"?-f12 addr:10.0.0.200 [root@oldboyedu41-nb?oldboy]#?ifconfig?eth0?|awk'NR==2'|awk?'{print?$2}' addr:10.0.0.200 [root@oldboyedu41-nb?oldboy]#?ifconfig?eth0?|awk'NR==2'|awk?'{print?$2}'|awk?-F:?'{print?$2}' 10.0.0.200


2.2.2 方法2awk 2個管道

[root@oldboyedu41-nb?oldboy]#?ifconfig?eth0?|awk'NR==2'inet?addr:10.0.0.200?Bcast:10.0.0.255?Mask:255.255.255.0 [root@oldboyedu41-nb?oldboy]#?ifconfig?eth0?|awk'NR==2'|awk?-F?"addr:"?'{print?$2}' 10.0.0.200??Bcast:10.0.0.255??Mask:255.255.255.0 [root@oldboyedu41-nb?oldboy]#?ifconfig?eth0?|awk'NR==2'|awk?-F?"addr:|Bcast"?'{print?$2}' 10.0.0.200?[root@oldboyedu41-nb?oldboy]#?ifconfig?eth0?|awk'NR==2'|awk?-F?"addr:|??Bcast"'{print?$2}' 10.0.0.200


2.2.3 方法3awk 1個管道

[root@oldboyedu41-nb?oldboy]#?ifconfig?eth0|awk'NR==2{print?$2}' addr:10.0.0.200 [root@oldboyedu41-nb?oldboy]#?#sed?'找誰干啥' [root@oldboyedu41-nb?oldboy]#?#awk?'找誰{干啥}' [root@oldboyedu41-nb?oldboy]#?#找誰===條件 [root@oldboyedu41-nb?oldboy]#?ifconfig?eth0|awk'NR==2{print?$2}' addr:10.0.0.200[root@oldboyedu41-nb?oldboy]#?ifconfig?eth0?|awk-F?"addr:|??Bcast"?'NR==2{print$2}' 10.0.0.200


2.2.4 方法4awk 1個管道

[root@oldboyedu41-nb?oldboy]#?ifconfig?eth0?|awk-F?"[:?]+"?'NR==2{print?$4}' 10.0.0.200[root@oldboyedu41-nb?oldboy]#?echo?'#####1@@@@@@2' #####1@@@@@@2 [root@oldboyedu41-nb?oldboy]#?echo'#####1@@@@@@2'|egrep?"[#@]" #####1@@@@@@2 [root@oldboyedu41-nb?oldboy]#?echo'#####1@@@@@@2'|egrep?"[#@]"?-o? # # # # # @ @ @ @ @ @ [root@oldboyedu41-nb?oldboy]#?echo'#####1@@@@@@2'|egrep?"[#@]"? [root@oldboyedu41-nb?oldboy]#?echo'#####1@@@@@@2'|egrep?"[#@]"? #####1@@@@@@2 [root@oldboyedu41-nb?oldboy]#?echo'#####1@@@@@@2'|egrep?"[#@]+"? #####1@@@@@@2 [root@oldboyedu41-nb?oldboy]#?echo'#####1@@@@@@2'|egrep?"[#@]+"?-o ##### @@@@@@ [root@oldboyedu41-nb?oldboy]#?echo'#####1@@@@@@2'|awk?-F?"[@#]+"?'{print?$2}' 1


2.2.5 方法5grep 正則

[root@oldboyedu41-nb?oldboy]#?ifconfig?eth0?|egrep"[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+"?inet?addr:10.0.0.200?Bcast:10.0.0.255?Mask:255.255.255.0 [root@oldboyedu41-nb?oldboy]#?ifconfig?eth0?|egrep"[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+"?-o 10.0.0.200 10.0.0.255 255.255.255.0 [root@oldboyedu41-nb?oldboy]#?ifconfig?eth0?|egrep"[0-9]+\.{3}[0-9]+"?? [root@oldboyedu41-nb?oldboy]#?ifconfig?eth0?|egrep"[0-9]+\.{3}[0-9]+"?? [root@oldboyedu41-nb?oldboy]#?ifconfig?eth0?|egrep"([0-9]+\.){3}[0-9]+"??inet?addr:10.0.0.200?Bcast:10.0.0.255?Mask:255.255.255.0 [root@oldboyedu41-nb?oldboy]#?ifconfig?eth0?|egrep"([0-9]+\.){3}[0-9]+"??-o 10.0.0.200 10.0.0.255 255.255.255.0[root@oldboyedu41-1?tmp]#?ifconfig?eth0?|egrep"([0-9]+\.?){4}"?-o?|head?-1 192.168.56.130


2.3 取出文件的數字權限 644 0644

[root@oldboyedu41-nb?oldboy]#?stat?/etc/hosts?File:`/etc/hosts'Size:?181?????????Blocks:8??????????IO?Block:?4096???regular?file Device:?803h/2051d??Inode:260126??????Links:?2 Access:?(0644/-rw-r--r--)?Uid:?(????0/????root)??Gid:?(????0/????root) Access:?2017-09-24?00:03:04.019681888?+0800 Modify:?2017-09-10?20:18:34.077204333?+0800 Change:?2017-09-10?20:18:34.096205176?+0800 [root@oldboyedu41-nb?oldboy]#?stat?/etc/hosts?|awk-F?"[(/]"?'NR==4{print?$2?}' 0644


總結:

通配符與特殊符號

?????? 通配符號-找文件名

????????????? {}

????????????? *

?????? 特殊符號

????????????? &&

????????????? >>??

????????????? >

????????????? /

????????????? $

????????????? .

????????????? ..

????????????? ~

????????????? |

????????????? #

????????????? !

????????????? &&

????????????? ||

?????? 單引號,雙引號,不加引號區別

????????????? echo'$LANG $(hostname) {1..5}'

????????????? '' 單引號:所見即所得,吃啥吐啥

????????????? "" 雙引號:具有特殊含義的符號 linux對特殊符號進行了解析 執行

????????????? 不加引號:與使用雙引號的時候相同,支持通配符

????????????? `` 反引號 $():運行里面的命令,把命令顯示出來的東西留下了

?

2.正則根據題目

?? 排除文件空行

?? 取出網卡ip地址 grep awk sed(后向引用)

?? 取出權限?????? grep awk sed(后向引用)

??

3.第三關練習題

4.linux權限

permission denied


轉載于:https://blog.51cto.com/oldpan/1976387

總結

以上是生活随笔為你收集整理的老男孩Linux运维第41期20171016第六周学习重点课堂记录的全部內容,希望文章能夠幫你解決所遇到的問題。

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