正規表示式工具 |
grep |
PowerGREP |
RegexBuddy |
RegexMagic |
一般應用程式 |
EditPad Lite |
EditPad Pro |
語言和函式庫 |
Boost |
Delphi |
GNU (Linux) |
Groovy |
Java |
JavaScript |
.NET |
PCRE (C/C++) |
PCRE2 (C/C++) |
Perl |
PHP |
POSIX |
PowerShell |
Python |
R |
Ruby |
std::regex |
Tcl |
VBScript |
Visual Basic 6 |
wxWidgets |
XML Schema |
Xojo |
XQuery 和 XPath |
XRegExp |
資料庫 |
MySQL |
Oracle |
PostgreSQL |
本網站其他內容 |
簡介 |
正規表示式快速入門 |
正規表示式教學 |
替換字串教學 |
應用程式和語言 |
正規表示式範例 |
正規表示式參考 |
替換字串參考 |
書籍評論 |
可列印 PDF |
關於本網站 |
RSS 摘要和部落格 |
Grep 是一種工具,源自 1970 年代的 UNIX 世界。它可以在檔案和資料夾(UNIX 中的目錄)中搜尋,並檢查這些檔案中的哪些列符合給定的 正規表示式。Grep 會輸出檔案名稱和列號,或與正規表示式相符的實際列。總而言之,這是一個非常有用的工具,可用於在電腦上的任何地方尋找儲存的資訊,即使(或特別是)您不知道實際要在哪裡尋找。
如果您輸入 grep regex *.txt,grep 會搜尋目前資料夾中的所有文字檔案。它會將 regex 套用至檔案中的每一列,並列印(即顯示)找到相符項目的每一列。這表示 grep 本質上是基於列的。正規表示式相符項目無法跨越多列。
如果您喜歡在命令列上工作,傳統的 grep 工具會讓許多工作變得更容易。所有 Linux 發行版(除了極小的軟碟機版本)都預設安裝 grep 的版本,通常是 GNU grep。如果您使用 Microsoft Windows,則需要另外下載並安裝它。如果您使用 Borland 開發工具,則已經安裝了 Borland 的 Turbo GREP。
grep 不僅適用於 globbed 檔案,也適用於您在標準輸入中提供的任何內容。與標準輸入搭配使用時,grep 會列印從標準輸入讀取的所有符合 regex 的列。例如:Linux find 指令會對目前目錄進行 glob,並列印找到的所有檔案名稱,因此 find | grep regex 只會列印與 regex 相符的檔案名稱。
大多數版本的 grep 使用 regex 指導的 引擎,例如本網站 regex 教學課程 中所討論的 regex 風格。然而,grep 的 regex 風格非常有限。在 POSIX 系統上,它使用 POSIX 基本正規表示式。
grep 的加強版本稱為 egrep。它使用 文字導向引擎。由於 grep 和 egrep 都不支援任何特殊功能,例如 延遲重複 或 環顧,而且因為 grep 和 egrep 只會指出是否在特定行上找到配對,因此這個區別並不重要,除了文字導向引擎比較快。在 POSIX 系統上,egrep 使用 POSIX 延伸正規表示式。儘管名稱為「延伸」,但 egrep 幾乎與 grep 相同。它只使用略有不同的 regex 語法,並新增對交替的支援,但失去對反向參照的支援。
GNU grep 是 Linux 上最受歡迎的 grep 版本,它同時使用文字導向和 regex 指導引擎。如果您使用反向參照,它會使用 regex 指導引擎。否則,它會使用較快的文字導向引擎。同樣地,對於 grep 所設計的任務,這對您這個使用者來說並不重要。如果您輸入「grep」指令,您將使用 GNU 基本正規表示式語法。如果您輸入「egrep」指令,您將使用 GNU 延伸正規表示式語法。GNU 版本的 grep 和 egrep 具有完全相同的功能,包括 grep 的交替和 egrep 的反向參照。它們只使用略有不同的語法。
如果您喜歡在命令列上工作,那麼傳統的 grep 工具就是您的選擇。但如果您喜歡使用圖形使用者介面,則有許多類似的 grep 工具可供 Windows 和其他平台使用。只要在您最愛的軟體下載網站上搜尋「grep」即可。不幸的是,許多 grep 工具附帶的說明文件很差,讓您必須自行找出它們確切使用的正規表示式類型。並非宣稱與 Perl 相容就表示它們實際上相容。有些幾乎完全相容(但從未完全相同),但當您想要使用進階且非常有用的建構(例如 環顧)時,其他工具則會慘不忍睹。
PowerGREP 是一款 Windows 導向的 grep 工具,在眾多工具中脫穎而出。
| 快速入門 | 教學 | 工具和語言 | 範例 | 參考 | 書籍評論 |
| grep | PowerGREP | RegexBuddy | RegexMagic |
| EditPad Lite | EditPad Pro |
| Boost | Delphi | GNU (Linux) | Groovy | Java | JavaScript | .NET | PCRE (C/C++) | PCRE2 (C/C++) | Perl | PHP | POSIX | PowerShell | Python | R | Ruby | std::regex | Tcl | VBScript | Visual Basic 6 | wxWidgets | XML Schema | Xojo | XQuery 和 XPath | XRegExp |
| MySQL | Oracle | PostgreSQL |
頁面網址:https://regular-expressions.dev.org.tw/grep.html
頁面最後更新時間:2020 年 5 月 27 日
網站最後更新時間:2024 年 3 月 15 日
版權所有 © 2003-2024 Jan Goyvaerts。保留所有權利。