Skip to content

Instantly share code, notes, and snippets.

@tomschall
Created November 21, 2025 16:48
Show Gist options
  • Select an option

  • Save tomschall/d4244d64429b5001b8f41239552cf99f to your computer and use it in GitHub Desktop.

Select an option

Save tomschall/d4244d64429b5001b8f41239552cf99f to your computer and use it in GitHub Desktop.

Ripgrep (rg) Cheatsheet & Practical Examples

Einleitung

Ripgrep (rg) ist ein extrem schneller Such-Tool-Ersatz für grep, ack und ag. Es durchsucht rekursiv Verzeichnisse, respektiert automatisch .gitignore-Dateien und ist ideal für große Codebases.

Dieses Dokument enthält praktische, direkt nutzbare Beispiele für den Entwicklungsalltag.


1. Grundlegende Suchen

Einfacher Text-Search im gesamten Projekt

rg "accessToken"

Case-insensitive Suche

rg -i "authorization"

Ganze Wörter matchen

rg -w "User"

2. Suche nach bestimmten Dateitypen

Eingebaute Typfilter

rg "useEffect" -tjs
rg "useForm" -tts
rg "Session" -tpy

Glob-Filter

rg "onClick" --glob '*.{js,jsx,ts,tsx}'

Eigene Typen hinzufügen

rg "StorySlider" \
  --type-add 'volto:*.{js,jsx,ts,tsx}' \
  -tvolto

3. Dateien oder Ordner ausschließen

Tests ignorieren

rg "useLogin" \
  --glob '!**/*.test.{js,jsx,ts,tsx}' \
  --glob '!**/__mocks__/**'

Build-Ordner ausschließen

rg "StorySlider" --glob '!build/**' --glob '!dist/**'

4. Kontext um Treffer anzeigen

rg "TODO" -n -C 3     # 3 Zeilen Kontext
rg "fetchStory" -n -B 5   # 5 Zeilen vorher
rg "fetchStory" -n -A 5   # 5 Zeilen nachher

5. Nur Dateinamen, Matches und Statistiken

Nur Dateien anzeigen

rg -l "StorySlider"

Matches zählen

rg "TODO" --count

Nur die Treffer selbst ausgeben

rg -o "t-[0-9]{4}" src

6. Regex-Suchen für Refactoring und Code-Qualität

Sicherheit

rg "dangerouslySetInnerHTML"

Inline-Funktionen in JSX

rg "=\{\s*\(?[a-zA-Z0-9_,\s]*\)?\s*=>"

Konsole in produktivem Code

rg "console\\.log" --glob '!**/*.test.{js,jsx,ts,tsx}'

7. Multiline-Suchen

rg -U -z "useEffect([\s\S]*?return\s*\(\s*<StorySlider" src
  • -U deaktiviert Standardbeschränkungen
  • -z behandelt Dateien als einen String

8. TODOs und Marker verwalten

Alle TODO/FIXME/BLOCKER

rg "TODO|FIXME|BLOCKER|BUG" -i

TODOs zählen

rg "TODO" --count

TODO-Typen extrahieren

rg -o "TODO([^)]*)" src | sort | uniq -c | sort -nr

9. Weiterverarbeitung von rg-Ausgaben

i18n Keys extrahieren

rg -o "id: \"[^\"]+\"" src \
  | sed 's/id: \"\(.*\)\"/\1/' \
  | sort | uniq

API-Endpunkte finden

rg -o "(/api/[a-zA-Z0-9_\/\-]+)" src

10. Schnelle Security-Checks

rg "eval("
rg "Bearer\s+[A-Za-z0-9._-]\{20,\}" -i
rg "secret" -i

11. Ripgrep mit Git kombinieren

Änderungen im Branch nach Pattern durchsuchen

git diff main...HEAD | rg "useLogin"

Nur TODOs in geänderten Dateien

git diff main...HEAD | rg "TODO"

12. Ripgrep in Kombination mit fd/xargs

Dateien zuerst finden, dann durchsuchen

fd . src -e js -e ts -e tsx | xargs rg "StorySlider"

Config-Dateien durchsuchen

fd ".+\\.ya?ml" config scripts | xargs rg "timeout"

13. Ripgrep für Refactoring

API-Feld wurde umbenannt

rg "story_title"

Deprecated Hooks oder Komponenten finden

rg "useOldAuth"
rg "<OldStoryCard"

14. Große Repos effizient durchsuchen

rg "StorySlider|StoryMap|LCP" src/frontend --glob '*.{js,jsx,ts,tsx}'

15. Statistiken anzeigen

rg "StorySlider" --stats

Fazit

Ripgrep ist ein leichtgewichtiges, extrem schnelles und vielseitiges Werkzeug, das viele Workflows in der modernen Softwareentwicklung erheblich beschleunigt. Dieses Cheatsheet soll schnelle Orientierung geben und praxisnahe Befehle liefern, die direkt im Alltag nutzbar sind.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment