正則表達式練習

   grep練習  :

1 、顯示/proc/meminfo 文件中以大小s 開頭的行:

blob.png

blob.png

blob.png

 2 、顯示/etc/passwd 文件中不以/bin/bash 結尾的行

    

blob.png

3 、顯示用戶rpc 默認的shell 

blob.png

     

blob.png

4 、找出/etc/passwd 中的兩位或三位數 

blob.png

 5 、顯示/etc/grub2.cfg 文件中,至少以一個空白字符開頭的

且后面存非空白字符的行

blob.png

 6 、找出"netstat -tan" 命令的結果中以'LISTEN' 后跟0 、1

或多個空白字符結尾的行

blob.png

 7 、添加用戶bash 、testbash 、basher 以及nologin( 其shell為/sbin/nologin), 而后找出/etc/passwd 文件中用戶名同shell名的行

     首先創建新用戶:

blob.png

blob.png

         然后按照要求匹配出/etc/passwd文件中用戶名和shell名一樣的行

[root@localhost ~]# grep "^\([[:alnum:]]\{1,\}\):.*\1$" /etc/passwd
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
bash:x:2021:2026::/home/bash:/bin/bash
nologin:x:2024:2029::/home/nologin:/sbin/nologin

blob.png




  egrep練習:  

  1 、顯示當前系統root 、mage 或wang 用戶的UID 和默認shell

blob.png

 2 、找出/etc/rc.d/init.d/functions 文件中行首為某單詞(包括下劃線)

blob.png

 3 、使用egrep 取出/etc/rc.d/init.d/functions

blob.png

 4 、使用egrep取出上面路徑的目錄名:blob.png

 5 、統計以root身份登錄的每個遠程主機IP地址的登陸次數blob.png




  用正則表達式表示IP地址:


blob.png

用正則表達式表示手機號

[root@localhost ~]# echo "13900123456" |grep -E -o "^\b1[3578][0-9]{9}\b" 
13900123456
[root@localhost ~]# echo 13800138000 |grep -E -o "^\b1[3578][0-9]{9}\b"
13800138000

blob.png

用正則表達式表示身份證號18

[root@localhost ~]# echo 130425199307275517 |egrep "\<((1[1-5])|(2[1-3])|(3[1-7])|(4[1-6])|(5[0-4])|(6[1-5])|(71|81|82))([0-9]){4}(19|20)([0-9]){2}((0[1-9])|(1[0-2]))(0[1-9]|([0-9])|(2[0-9])|(3[0-1]))([0-9]){3}([0-9]|X)\>" 
130425199307275517

blob.png

用正則表達式表示郵箱

[root@localhost ~]# echo 240482574@qq.com |egrep "\<([[:alnum:]]+(-|_)*[[:alnum:]]*)\>@([[:lower:]]|[[:digit:]])+\.[[:lower:]]*(\.[[:lower:]]+)*" 
240482574@qq.com

blob.png

[root@localhost ~]# echo 240482574@qqvip.com |egrep "\<([[:alnum:]]+(-|_)*[[:alnum:]]*)\>@([[:alnum:]]+\.)+[[:alnum:]]+" 
240482574@qqvip.com

blob.png

blob.png

原創文章,作者:舊城以西,如若轉載,請注明出處:http://www.www58058.com/30590

(0)
舊城以西舊城以西
上一篇 2016-08-10 10:27
下一篇 2016-08-10 10:27

相關推薦

  • 數組和字符串處理

    數組:存儲多個元素的連續的內存空間,相當于多個變量的集合     1)定義數組:        declare -a ARRAY_NAME 定義普通數組 可省略declare -a ]#arr=(a b&nbs…

    Linux干貨 2016-08-24
  • vsftpd

    練習:完成vsftpd配置 (1) 禁錮系統用戶于家目錄 [root@node3 ~]# yum -y install vsftpd [root@node3 ~]# vim /etc/vsftpd/vsftpd.conf chroot_local_user=YES &n…

    Linux干貨 2016-10-16
  • 函數式編程

    當我們說起函數式編程來說,我們會看到如下函數式編程的長相: 函數式編程的三大特性: immutable data 不可變數據:像Clojure一樣,默認上變量是不可變的,如果你要改變變量,你需要把變量copy出去修改。這樣一來,可以讓你的程序少很多Bug。因為,程序中的狀態不好維護,在并發的時候更不好維護。(你可以試想一下如果你的程序有個復雜的狀態,當以后別…

    Linux干貨 2016-08-15
  • 1.初識linux

    1.計算機組成 計算機五大部件:運算器、控制器、存儲器、輸入設備、輸出設備。對應實際情況大致如下: CPU CPU(Central Processing Unit)主要包含運算器、控制器;也包含寄存器、緩存用于輔助: CPU在同一時間能并行處理的二進制數的位數稱為CPU字長。字長由CPU對外數據通路的數據總線條數決定。 運算器 運算器也稱…

    Linux干貨 2016-08-22
  • 第一周博客作業

       第一次自己動手寫博客,而不是轉載或者收藏,還是滿忐忑的,希望是一個好的開始,以下內容均為依照記憶或者說學習到的知識總結,之后會另寫一篇博文根據網絡查詢到的更嚴謹完整的答案作為總結。一、描述計算機的組成及其功能。答:計算機主要有五個部分組成,分別是:運算器、控制器、存儲器、輸入設備、輸出設備。  1、控制器為整個計算機工作中的核心,負責調度所有組件之間的…

    Linux干貨 2016-12-04
  • 第八周博客作業

    1、寫一個腳本,使用ping命令探測172.16.250.1-172.16.250.254之間的所有主機的在線狀態; 在線的主機使用綠色顯示; 不在線的主使用紅色顯示; #!/bin/bash declare -i i=1 ping_172() { if ping -W 1 -c 1 172.16.250.$1 &> /dev/null; th…

    Linux干貨 2017-05-22
欧美性久久久久