正則表達式

linux其實和internet同樣,都是一個充滿了大量信息、數據的東西,如何有效的過濾本身不用的信息、獲取有用的信息反映了一我的水平的高低,這時候用各類工具與正則的結合變的異常強大python

正則表達式(regular expression)描述了一種字符串匹配的模式,能夠用來檢查一個串是否含有某種子串、將匹配的子串作替換或者從某個串中取出符合某個條件的子串等。linux

awk 對於從大的數據文件中抽取指定的數據包十分有用,好比你能夠用他來管理passwd文件,或者是日誌文件(至關巨大的文件,而用了awk就會變的很輕鬆了),一般awk都是和grep結合來用的,用grep抽出行,再用awk抽出行中指定的列,不過就算單獨用awk也同樣好用。git

正則表達式只是一種表示法,只要工具支持這種表示法, 那麼該工具就能夠處理正則表達式的字符串。find、vim、grep、awk 、sed 都支持正則表達式,也正是由於因爲它們支持正則,才顯得它們強大正則表達式

正則能夠在許多種express

 不一樣的unix/linux 程序中使用,例如:find,grep,expr,vi,sed等編程

 不一樣的編程語言中使用,例如:awk,perl,python等vim

在不一樣的程序與語言中有一些差別編程語言

下面的都是典型的通用概念,工具

預約義字符類post

[:alnum:]  Alphanumeric characters.
[:alpha:]  Alphabetic characters.
[:blank:]  Space or tab characters.
[:cntrl:]  Control characters.
[:digit:]  Numeric characters.
[:graph:]  Characters that are both printable and visible.  (A space is printable, but not visible, while an a is both.)
[:lower:]  Lower-case alphabetic characters.
[:print:]  Printable characters (characters that are not control  characters.)
[:punct:]  Punctuation characters (characters that are not letter, digits, control characters, or space characters).
[:space:]  Space characters (such as space, tab, and formfeed, to  name a few).
[:upper:]  Upper-case alphabetic characters.
[:digit:]  Characters that are hexadecimal digits.

grep 支持三種正則 基本 擴展 perl

正則表達式語法支持狀況

命令或環境 . [ ] ^ $ \( \) \{ \} ? + | ( )
vi  X   X   X   X   X 




Visual C++  X   X   X   X   X 




awk  X   X   X   X 

 X   X   X   X 
sed  X   X   X   X   X   X 



Tcl  X   X   X   X   X 
 X   X   X   X 
ex  X   X   X   X   X   X 



grep  X   X   X   X   X   X 



egrep  X   X  X   X   X 
 X   X   X   X 
fgrep  X   X   X   X   X 




perl  X  X  X  X  X
 X  X  X  X

 

 

命令名 正則 通配
ls   *
grep * *
find *  
sed *  
awk *  

[root@250-shiyan ~]# df|sed -n '/\/$/p'|awk '{print $5}'|sed 's/%//'

[root@250-shiyan ~]# df|grep "/$"|awk '{print $5}'|sed 's/%//'  grep awk sed 合稱拼命三郎或三劍客

cut也是一個比較強大的工具,能夠對一行字符串進行多種模式匹配的剪切操做,也能夠對一個排列很是整齊的文本進行操做

cut -d ':' -f 2  以分隔符爲界

cut -c 2-5    以字母爲界

grep主要對行過濾查找

sed options ‘command’ file

options

p 打印

s 搜索

sed和grep主要是對文本進行「行」的操做,sed與awk是文本處理工具

awk方法主要是對文本進行「列」的操做,awk會把每一列都取一個名字,從第一列開始:分別爲$1,$2...$n

awk [-F] "field-operator" 'comand' inputfiles

-F和field-operator一塊兒使用,field-operator是域分隔符,若是不使用-F選項,則默認的域分隔符爲空格。後面command命令通常須要用一堆「{}」括起來,而後進行必要的操做

 

sed -n  只將符合模式的行列出來

 

命令名 列操做 行操做 輸入
cut    

input file

std input

-

相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息