擴充正規表示式命令總結

小亮520cl發表於2015-06-01
 篩選IP地址

[root@localhost script]# ifconfig | grep -Eo '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+'

192.168.0.210

192.168.0.255

255.255.255.0

127.0.0.1

255.0.0.0

[root@localhost script]# ifconfig | grep -oP '(\d+\.){3}\d+' 

192.168.0.210

192.168.0.255

255.255.255.0

127.0.0.1

255.0.0.0


某個單詞出現的次數(不能用-c 的原因的是一行可能存在多個the)
[root@gc1: /root/scripts]$ grep -o "the" regular_express.txt |wc -l



找出帶時間戳的檔案


點選(此處)摺疊或開啟

  1. [rootgc1:/root/scripts]$ ls | grep ".*[0-9]\{8\}\.txt"
    [rootgc1:/root/scripts]$ ls | grep -oP ".*[0-9]{8}\.txt"
    [rootgc1:/root/scripts]$ ls | egrep ".*[0-9]{8}\.txt"
    241873413.txt
    351_TM02_PSNWPDPEVENT2015030914552207.txt
    adad241873413.txt
    adsfa42241873413.txt
    datong20140408234.txt




sed -r擴充用法
此處的-r與egrep  "(dd)" test.txt 一樣。。,,如果不新增-r  那麼()都是需要轉義的如:
如下例
[rockfall@tmp]$echo "aaa bbb "|sed -r 's/(.)/A/'
Aaa bbb 
[rockfall@tmp]$echo "aaa bbb "|sed  's/(.)/A/'
aaa bbb 
[rockfall@tmp]$echo "aaa bbb "|sed  's/\(.\)/A/'
Aaa bbb



擷取檔名 不要擴充名

  1. [root@gc1: /root/scripts]$ echo 988dsad.rar|sed -r 's/(.*)(\..*)/\1/'
    988dsad
    [root@gc1: /root/scripts]$ echo 988dsad.rar|sed -r 's/(.*)(\.)(.*)/\1/'
    988dsad

擷取檔名 從檔名的第一位開始到第一個數字結束
echo datong20140408234.txt |sed -r 's/^([a-z]*)([0-9]*).*/\1/'    


擷取檔名或者字尾名
  1. % 和# 非貪婪操作:它找出匹配萬用字元的最短的結果刪除
  2. [root@bogon 2742OS_02_Code]# file_jpg="sample.jpg";
    [root@bogon 2742OS_02_Code]# echo ${file_jpg%.*}   %表示從右到左,所以刪除了.jpg
    sample
    [root@bogon 2742OS_02_Code]# echo ${file_jpg#*.}   #表示從左到右,所以刪除了sample.
    jpg
    [root@bogon 2742OS_02_Code]# file_jpg="sample.jpg.sadf";echo ${file_jpg%.*}
    sample.jpg
    [root@bogon 2742OS_02_Code]# file_jpg="sample.jpg.sadf";echo ${file_jpg#*.}
    jpg.sadf
  3. %%與##:貪婪:它找出匹配萬用字元的最長的結果刪除
  4. [root@bogon 2742OS_02_Code]# file_jpg="sample.jpg.sadf";echo ${file_jpg%%.*}
    sample
    [root@bogon 2742OS_02_Code]# file_jpg="sample.jpg.sadf";echo ${file_jpg##*.}
    sadf








擷取子欄位(擷取table_name或者tablename)
  1. [H]table_name_2015042318.00.cvs
    [H]tablename_201504032.00.cvs
    [H]table_name_20150402138.00.cvs
    [rootgc1:/root/scripts]$ more file|grep -oP "(?<=]).*(?=_[0-9].*)"
    tablename
    table_name

統計某一型別的檔案的大小
[root@iZ257l556beZ mysql]# du -sch `find ./ -name "*.MYI"`
4.0K    ./proc.MYI
4.0K    ./user.MYI
8.0K    ./tables_priv.MYI
4.0K    ./columns_priv.MYI
8.0K    ./db.MYI
4.0K    ./procs_priv.MYI
4.0K    ./func.MYI
4.0K    ./ndb_binlog_index.MYI
8.0K    ./proxies_priv.MYI
4.0K    ./event.MYI
52K     total




來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29096438/viewspace-1680399/,如需轉載,請註明出處,否則將追究法律責任。

相關文章