14-11-2023
This commit is contained in:
126
docs/Linux/ripgrep.md
Normal file
126
docs/Linux/ripgrep.md
Normal file
@@ -0,0 +1,126 @@
|
||||
# ripgrep (rg)
|
||||
|
||||
Remplaçant de *grep*
|
||||
|
||||
https://github.com/BurntSushi/ripgrep
|
||||
|
||||
|
||||
|
||||
##### Installation:
|
||||
|
||||
```bash
|
||||
$ brew install ripgrep
|
||||
```
|
||||
|
||||
##### Utilisation:
|
||||
|
||||
```bash
|
||||
$ rg PATH ~/.zshrc
|
||||
```
|
||||
|
||||
<img src="/Users/bruno/Documents/docs/docs/Linux/rg.png" alt="rg" style="zoom:50%;" />
|
||||
|
||||
```bash
|
||||
# regex ('core' plus 1 ou plusiers lettres)
|
||||
$ rg 'core\w+' ~/.zshrc
|
||||
22:PATH="/opt/homebrew/opt/coreutils/libexec/gnubin:$PATH
|
||||
25:coreutils=false
|
||||
|
||||
# regex ('core' plus 0 ou plusiers lettres)
|
||||
$ rg 'core\w*' ~/.zshrc
|
||||
22:PATH="/opt/homebrew/opt/coreutils/libexec/gnubin:$PATH
|
||||
25:coreutils=false
|
||||
|
||||
# string
|
||||
$ rg -F 'eval "$(' ~/.zshrc
|
||||
83:eval "$(zoxide init --cmd j zsh)"
|
||||
107:eval "$(perl -I$HOME/perl5/lib/perl5 -Mlocal::lib=$HOME/perl5)"
|
||||
```
|
||||
|
||||
[https://docs.rs/regex/*/regex/#syntax](https://docs.rs/regex/*/regex/#syntax)
|
||||
|
||||
rg dans tout un répertoire:
|
||||
|
||||
```bash
|
||||
$ rg '#!'
|
||||
handbrake-batchconvert.sh
|
||||
1:#!/bin/sh
|
||||
|
||||
composer.sh
|
||||
1:#!/bin/bash
|
||||
|
||||
tmutil.sh
|
||||
1:#!/bin/bash
|
||||
```
|
||||
|
||||
```bash
|
||||
$ rg '#!' Scripts
|
||||
Scripts/kymsu2/kymsu2.sh
|
||||
1:#!/usr/bin/env bash
|
||||
|
||||
Scripts/sonos/test.sh
|
||||
1:#!/usr/bin/env bash
|
||||
```
|
||||
|
||||
En l'absence de chemin, rg cherche dans le répertoire courant.
|
||||
|
||||
##### Filtre manuel:
|
||||
|
||||
```bash
|
||||
# Rechercher uniquement dans les fichiers .sh
|
||||
rg echo -g '*.sh'
|
||||
|
||||
# Rechercher partout sauf dans les fichiers .sh
|
||||
rg echo -g '!*.sh'
|
||||
```
|
||||
|
||||
##### File types
|
||||
|
||||
```bash
|
||||
$ rg --type-list
|
||||
...
|
||||
config: *.cfg, *.conf, *.config, *.ini
|
||||
md: *.markdown, *.md, *.mdown, *.mkdn
|
||||
php: *.php, *.php3, *.php4, *.php5, *.phtml
|
||||
sh: *.bash, *.bashrc, *.csh, *.cshrc, *.ksh, *.kshrc, *.sh, *.tcsh, *.zsh, .bash_login, .bash_logout, .bash_profile, .bashrc, .cshrc, .kshrc, .login, .logout, .profile, .tcshrc, .zlogin, .zlogout, .zprofile, .zshenv, .zshrc, bash_login, bash_logout, bash_profile, bashrc, profile, zlogin, zlogout, zprofile, zshenv, zshrc
|
||||
...
|
||||
```
|
||||
|
||||
|
||||
|
||||
```bash
|
||||
# Recherche dans les fichiers shell .bashrc, .zshrc...
|
||||
|
||||
$ rg 'eval' --type sh ~/
|
||||
# ou
|
||||
$ rg 'eval' -tsh ~/
|
||||
/Users/bruno/.bash_profile
|
||||
72:eval "$(thefuck --alias)"
|
||||
/Users/bruno/.zprofile
|
||||
1:eval "$(/opt/homebrew/bin/brew shellenv)"
|
||||
...
|
||||
|
||||
# Recherche partout sauf dans les fichiers shell .bashrc, .zshrc...
|
||||
|
||||
$ rg 'eval' --type-not sh ~/
|
||||
# ou
|
||||
$ rg 'eval' -Tsh ~/
|
||||
```
|
||||
|
||||
##### Remplacement:
|
||||
|
||||
```bash
|
||||
# recherche / remplacement mot pour mot
|
||||
$ rg fast README.md --replace FAST
|
||||
$ rg fast README.md -r FAST
|
||||
|
||||
# remplacer toute une ligne
|
||||
$ rg '^.*fast.*$' README.md -r FAST
|
||||
```
|
||||
|
||||
##### Fichier de configuration:
|
||||
|
||||
```bash
|
||||
$ cat $HOME/.ripgreprc
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user