6個使用正規表示式搜尋文字中內容的工具

夢共裡醉發表於2021-11-08
本指南介紹了一些 行工具,這些工具可用於搜尋文字檔案中的匹配字串或模式。這些工具通常與正規表示式一起使用。
grep

首先出現的是grep實用工具——它是 Global Regular Expression Print的首字母縮寫,是一種強大的命令列工具,在搜尋檔案中的特定字串或模式時非常方便。

例如,要在忽略大小寫的情況下搜尋檔案 sshd_conf.txt中包含 ssh字串的行,請執行以下命令:

[root@localhost ~]# grep -i ssh sshd_conf.txt

6個使用正規表示式搜尋文字中內容的工具6個使用正規表示式搜尋文字中內容的工具
想要了解更多關於grep命令的使用方式,可以檢視grep的手冊: man grep

sed命令

sed 是 Stream Editor 的縮寫,用於操作文字檔案中的文字。sed以非互動方式搜尋、篩選和替換給定檔案中的字串。

預設情況下,sed命令將輸出列印到標準輸出,這意味著執行的結果列印在終端上,而不是儲存在檔案中。

例如,將檔案 /etc/se /config中的 SELINUX=enforcing改成 SELINUX=disabled,請呼叫以下命令:

[root@localhost ~]# sed -i '/^SELINUX=/s/enforcing/disabled/g' /etc/selinux/config

6個使用正規表示式搜尋文字中內容的工具6個使用正規表示式搜尋文字中內容的工具
修改之後,儲存退出,重啟作業系統,這樣可以關閉selinux。

想要了解更多關於sed命令的使用方式,可以檢視sed的手冊: man sed

ack命令

Ack是用Perl編寫的快速且可移植的命令列工具。Ack被認為是grep的替代品,並以視覺吸引人的方式輸出結果。Ack命令在檔案或目錄中搜尋包含與搜尋條件匹配的行。然後突出顯示各行中的匹配字串。

安裝方式( 7系統):

[root@localhost ~]# yum -y install ack

例如,要在sshd_conf.txt中查詢包含ssh的行,不區分大小寫,請執行:

[root@localhost ~]# ack -i ssh sshd_conf.txt

6個使用正規表示式搜尋文字中內容的工具6個使用正規表示式搜尋文字中內容的工具
搜尋出來的關鍵字會以高亮的方式顯示出來。

搜尋工具非常智慧,如果使用者未提供檔案或目錄,它會在當前目錄和子目錄中搜尋。在下面的示例中,沒有提供檔案或目錄,但是ack自動檢測到了目錄和子目錄中匹配字串的檔案裡面的行:

[root@localhost ~]# ack -i ssh

6個使用正規表示式搜尋文字中內容的工具6個使用正規表示式搜尋文字中內容的工具
想要了解更多關於ack命令的使用方式,可以檢視ack的手冊: man ack

awk命令

awk是一種成熟的 語言,也是文字處理和資料處理工具。讓我們以最簡單的例子為例。假設正在列印系統日期,只想列印第一個值,即星期幾。在這種情況下,將輸出通過管道傳輸到awk中,如下所示:

[root@localhost ~]# date
Mon Nov 23 10:47:42 CST 2020
[root@localhost ~]# date |awk '{print $1}'
Mon

要顯示後面的值,請使用逗號分隔它們,如下所示:

[root@localhost ~]# date |awk '{print $6,$2,$3}'
2020 Nov 23

6個使用正規表示式搜尋文字中內容的工具6個使用正規表示式搜尋文字中內容的工具
想要了解更多關於awk命令的使用方式,可以檢視awk的手冊: man awk

Silver Searcher工具

Silver Searcher是一個類似於ack的跨平臺和開原始碼搜尋工具,但注重速度。它可以在最短的時間內輕鬆搜尋檔案中的特定字串:

安裝方式(Centos7):

[root@localhost ~]# yum -y install epel-release && yum makecache
[root@localhost ~]# yum -y install the_silver_searcher

例如,在 /etc/passwd檔案中搜尋字串"nologin",使用以下命令:

[root@localhost ~]# ag nologin /etc/passwd

6個使用正規表示式搜尋文字中內容的工具6個使用正規表示式搜尋文字中內容的工具
想要了解更多關於Silver Searcher工具的使用方式,可以檢視ag的手冊: man ag

ripgrep工具

ripgrep命令列工具。Ripgrep是用於正規表示式模式的跨平臺實用程式。它比前面提到的所有搜尋工具速度都快得多,並且可以遞迴搜尋目錄以找到匹配的模式。在速度和效能方面,沒有其他工具比Ripgrep出色。

預設情況下,ripgrep將跳過二進位制檔案/隱藏的檔案和目錄。另外,在預設情況下,它不會搜尋被.gitignore / .ignore / .rgignore檔案忽略的檔案。

安裝ripgrep(Centos7):

[root@localhost ~]# yum -y install yum-utils
[root@localhost ~]# sudo yum-config-manager --add-repo=
[root@localhost ~]# yum -y install ripgrep

例如,要在當前目錄內的檔案中搜尋字串“Linux”,請執行以下命令:

[root@localhost ~]# rg Linux

6個使用正規表示式搜尋文字中內容的工具6個使用正規表示式搜尋文字中內容的工具
想要了解更多關於ripgrep命令的使用方式,可以檢視rg的手冊: man rg

總結

這些是Linux中用於搜尋、過濾和操作文字的最廣泛使用的命令列工具。


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

相關文章