正则表达式常用
正則表達式:就是一個字符串形式。grep用來查找文件內容
grep ^go test.txt ? ? //查找以go開頭的行
grep $up test.txt ? ? //查找以up結尾的行
//^$表示空行,這個顯而易見
grep d.y test.txt ? ?//點表示出了換行符之外的任意一個字符,這是匹配一個字符
echo "www.x.y.z"|grep "w\.x" ? ? //正則中'.'已經不是單純的'.'了,要匹配'.'則要用到轉義。
grep d.*y test.txt ? ?//'.'表示匹配任意字符,*則表示前面模式的0次或者多次重復
grep s[rst]u test.txt ? ?//[]用來指定一個字符所述的集合,要注意,[]只會匹配其中的某個字符。即只會匹配r,s,t中的一個字符
grep s[a-zA-Z]u test.txt ? ? ?//匹配所有的英文字母中的一個。數字則是[0-9]
grep "\<[a-z]ay\>" test1.txt ? ? ?//正則中'\<'表示開頭,'\>'表示結尾。打印這個單詞,開頭為[a-z],結尾為y
grep -w [a-z]ay test1.txt ? ? ?//-w選項表示過濾單詞行
//在正則表達式里,'和空格符一樣,都是分隔號
grep "d[^abcd]" test.txt ? ? ? //[]里的^表示取反。打印非da,db,dc,dd開頭的行。但de開頭的行卻可以
grep "^[[:lower:]]" test.txt ? //[[:lower:]]等價于[a-z],打印a-z開頭的行
grep "$[[:upper:]]" test.txt ? //[[:upper:]]等價于[A-Z]
echo "gd"| egrep "go*d" ? ? //*表示前面的模式重復0次或多次。即o重復0次或多次
echo "gd"| egrep "go+d" ? ? //+表示重復1次或多次
echo "gd"| egrep "go?d" ? ? //?表示重復0次或1次(對o)
echo "goood"| egrep "go{4}d" ? ?//指定重復4次
echo "goood"| egrep go"{4,}d" ? ?//重復4次以上
echo "good"| egrep "go{4,6}d" ? ?//重復4次到6次
echo "123456"|egrep "[1-9][0-9]{4}" ? //[1-9]表示第一位上的數是1-9,。{4}是修飾[0-9],表示后面的4位是0-9,則總共是5位數
echo "abababc"|egrep "(ab){3,}" ? ? //括號代表整體,即ab一個整體重復3次以上的
echo "ab"|egrep "a()b" ? ? ? ? ? ? //這里的()表示空,即它們之間沒有字母,而不是空格
egrep "^g|p$" test.txt ? ? ?//以g開頭或以p結尾的行
?
總結
- 上一篇: BOOL,int,float,指针变量
- 下一篇: git修改最后一次的提交信息