Linux正則表達式-定位元字符
有兩個元字符用于指定字符串出如今行首或行末。脫字符(^)是指示開始的單字符正則表達式。美元符號($)是指示行結(jié)尾的單字符的正則表達式。這些通常稱為"定位符",由于它們將匹配限定在特定位置。比如,能夠使用下面表達式打印以First開始的行:
^First
沒有^元字符。這個表達式將打印包括First的隨意行。
通常。使用VI輸入要由troff處理的文本,而且不想讓空格出如今行的結(jié)尾。假設(shè)想找到(并刪除)它們,以下的正則表達式能夠匹配在結(jié)尾處有一個或多個空格的行:
□□*$
Troff請求和宏必須在行的開始處輸入。它們是兩個字符的字符串。前面帶有一個句點。
假設(shè)請求或宏有一個參數(shù)。那么它通常后面跟有一個空格。用于搜索這種請求的正則表達式是:
^\...□
這個表達式匹配"行首有一個句點,隨后跟有兩個字符的字符串,然后是一個空格的行"。
能夠使用兩個連續(xù)的定位元字符來匹配空行,即:^$
能夠使用這樣的模式計算文件里的空行數(shù),在grep中使用計數(shù)選項-c:
$ grep?-c?'^$'?ch045
假設(shè)想使用sed來刪除空行。那么這個正則表達式非常實用。
以下的正則表達式可用于匹配空行,即使當中包括空格:
^□*$
相同。能夠使用下面表達式匹配整個行:^.*$
在sed(和grep) 中,僅僅有當"^"和"$"分別出如今正則表達式的開始或結(jié)尾時才是特殊的。
因此"^abc"意味著"匹配僅僅處于行的開始處的字母a、b和c" ,而"ab^c" 意味著"匹配處于行的任何位置的a、b、字符^,然后是c"。
這對于"$"相同使用。
在awk中則不同。 "^"和"$"總是特殊的。即使它們可能使編寫的正則表達式不匹配不論什么東西。
能夠說,在awk中,當想要匹配字符"^"或"$"時,無論它處于正則表達式的什么位置都應(yīng)該用反斜杠對其進行轉(zhuǎn)義。
參考資料:http://www.linuxawk.com/communication/441.html
總結(jié)
以上是生活随笔為你收集整理的Linux正則表達式-定位元字符的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【工具】git笔记(一)
- 下一篇: 欧盟出台首个网络与信息安全指导性法律