自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

ripgrep(rg)命令是什么?做什么用的呢?

系統(tǒng) Linux
ripgrep 是一個(gè)非常好用的工具,雖然它暗指要替代 grep,但實(shí)際上并不會(huì)取代 grep,因?yàn)樗鼈兊乃阉髂繕?biāo)是不同的。我們可以在日常工作中按需求來(lái)使用。

ripgrep 是開(kāi)源社區(qū)正在進(jìn)行的 RIIR(re-write in Rust)工作的一個(gè)優(yōu)秀成果。它旨在成為經(jīng)典 grep 命令 的高級(jí)替代工具。

它的語(yǔ)法如下:

rg  [files/directories]

使用 ripgrep,可以不提供待搜索的文件名。如果沒(méi)有提供文件名,那么就會(huì)搜索所有的文件。如果你不知道搜索的關(guān)鍵詞在哪個(gè)文件中,那這種情況下是非常有用的。

當(dāng)然,我們也可以使用 grep 搜索所有的文件,但是 ripgrep 不需要提供額外的參數(shù)。

什么是 ripgrep

ripgrep 是一個(gè)遞歸正則表達(dá)式模式匹配工具,它考慮了 gitignore。如果你的 gitignore 中有排除的文件或目錄,那么 ripgrep 將會(huì)忽略它們,從而加快搜索的執(zhí)行時(shí)間。

ripgrep 幾個(gè)比較突出的特點(diǎn)如下:

在目錄中遞歸搜索;

  • 輸出中不同顏色高亮顯示;
  • 支持多種編碼格式,比如 UTF-8,SHIFT_JIS等;
  • 可以在壓縮文件的zip文件中搜索;
  • 默認(rèn)情況下會(huì)忽略隱藏文件,另外也會(huì)忽略 gitignore文件中的過(guò)濾設(shè)置。

你可以將其視同為 grep,但 ripgrep 搜索的是文件和文件內(nèi)容,而不是 grep 所處理的原始字節(jié)流。

安裝 ripgrep

大多數(shù) Linux 系統(tǒng)中都預(yù)裝了 grep,但是 ripgrep 并沒(méi)有這樣的特權(quán),所有我們需要手動(dòng)安裝它。

ripgrep 在所有主流 Linux 發(fā)行版的存儲(chǔ)庫(kù)中都可用,所以我們可以使用包管理器來(lái)安裝。

如果你是 Arch Linux 用戶(hù),可以使用如下命令安裝:

pacman -S ripgrep

Gentoo 用戶(hù)使用如下命令安裝 ripgrep:

emerge sys-apps/ripgrep

Fedoras 或者 Red Hat 使用如下命令:

sudo dnf install ripgrep

openSUSE(15.1及更新版本)用戶(hù)使用如下命令:

sudo zypper install ripgrep

Debian Buster(v10)或更高版本的用戶(hù),可使用 apt;Ubuntu Cosmic Cutlefish(18.10)或更高級(jí)版本也可以使用發(fā)行版的官方存儲(chǔ)庫(kù):

sudo apt install ripgrep

使用 ripgrep 命令

如果你熟悉 grep 命令,就會(huì)發(fā)現(xiàn) ripgrep 與其工作原理類(lèi)似。它接受一個(gè)字符串和文件名作為參數(shù),運(yùn)行時(shí)會(huì)搜索文件,并顯示輸入字符串與文件內(nèi)容匹配的位置。

基本搜索

如下例子,我們?cè)?Cargo.html 中搜索單詞 description:

$ rg description Cargo.toml
3:description = "A more intuitive version of du"
53:extended-description = """\

ripgrep 將在指定的文件中搜索,結(jié)果將顯示匹配的文本和行號(hào):

如果搜索的是多個(gè)文件(如果不指定任何文件,它將搜索所有文件),那么ripgrep在搜索結(jié)果中還會(huì)顯示文件名:

或者,可以使用 --file 選項(xiàng),其中包含要搜索的關(guān)鍵詞(表達(dá)式)。當(dāng)你要搜索一組關(guān)鍵詞時(shí),可以將其放在一個(gè)文件中,然后使用 --file 選項(xiàng)指定:

前后文搜索

有時(shí)候,有匹配的前后文是很好的顯示方式,特別是在代碼庫(kù)中搜索時(shí)。使用前后文搜索,可以使用 -C 或者 --context 選項(xiàng),該選項(xiàng)接受一個(gè)數(shù)值,并顯示匹配值的前一行和后一行:

有時(shí),我們只希望看到上面的幾行,包括匹配的行;還有時(shí)候,我們只需要下面的行,包括匹配的行。使用選項(xiàng) -A,或者 --after-context,后跟一個(gè)數(shù)值,將顯示每個(gè)匹配行后的幾行:

至于顯示匹配行前面的幾行,可以使用 -B 或者 --before-context,再提供一個(gè)數(shù)值(即行數(shù)):

列選項(xiàng)

關(guān)于 ripgrep 提供的列,有幾個(gè)選項(xiàng)。

如果你使用的是 vim,可以使用 --column 選項(xiàng),這樣將在結(jié)果中顯示匹配文本在哪一列,以"行:列"的方式顯示:

與列相關(guān)的另一個(gè)選項(xiàng)是 -M 或 --max-columns,它取最大列數(shù)的值。如果匹配行的列超過(guò)最大值,它會(huì)告訴你某一特定行在輸出到終端時(shí)被忽略:

其他選項(xiàng)

除了上文中提到的,ripgrep 中還有其他幾個(gè)選項(xiàng)。比如:可以使用 -s 或 --case-sensitive 選項(xiàng)來(lái)區(qū)分大小寫(xiě):

如果不想?yún)^(qū)分大小寫(xiě),可以使用 -i 或 --ignore-case :

另外,如果你要搜索的目標(biāo)文件特別大,可以啟用多線程進(jìn)行搜索。使用 -j 或 --threads 選項(xiàng),后跟一個(gè)數(shù)值:

$ rg -j 4 TODO

在搜索中要排除某個(gè)關(guān)鍵詞或表達(dá)式,可以使用 -v 或 --invert-match 選項(xiàng):

ripgrep 可以實(shí)現(xiàn)在壓縮文件(如果壓縮文件是文本文件)中進(jìn)行搜索,使用 -z 或 --search-zip 選項(xiàng)。其通常與 -a 選項(xiàng)一起使用,-a 選項(xiàng)會(huì)將二進(jìn)制文件也當(dāng)作文本文件。

ripgrep 是一個(gè)非常好用的工具,雖然它暗指要替代 grep,但實(shí)際上并不會(huì)取代 grep,因?yàn)樗鼈兊乃阉髂繕?biāo)是不同的。我們可以在日常工作中按需求來(lái)使用。

以上就是本次分享全部?jī)?nèi)容,歡迎討論。

責(zé)任編輯:龐桂玉 來(lái)源: TIAP
相關(guān)推薦

2022-11-04 08:59:56

2020-08-10 07:44:13

虛擬內(nèi)存交換內(nèi)存Linux

2024-10-18 10:00:00

云計(jì)算虛擬

2021-07-13 09:08:19

磁盤(pán)陣列系統(tǒng)

2020-10-20 09:57:04

量子計(jì)算人工智能技術(shù)

2017-07-27 09:53:34

spring AopspringCIO

2023-05-20 17:48:39

Linux/tmp/var/tmp

2019-10-25 09:50:03

網(wǎng)絡(luò)爬蟲(chóng)蜘蛛Wi-Fi

2022-02-16 22:37:00

流式SQLSQL數(shù)據(jù)庫(kù)

2023-05-05 08:18:38

Linuxsource命令

2024-01-25 10:23:22

對(duì)象存儲(chǔ)存儲(chǔ)數(shù)據(jù)

2024-02-19 00:00:00

Python?starmap函數(shù)

2023-12-13 15:28:32

Python工具數(shù)據(jù)

2022-05-30 07:34:33

三范式Java

2022-07-13 07:06:47

HTTPSHTTP協(xié)議

2022-05-05 07:38:32

volatilJava并發(fā)

2017-09-19 15:22:44

2021-12-30 19:36:48

GoDubboJava

2022-01-07 14:05:33

DubboGoJava

2009-06-17 15:51:55

java有什么用
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)