Scooter il trova e sostituisci innovativo da terminale Linux

Quando si parla di modifiche batch su file di testo, le soluzioni classiche includono comandi come sed, perl o ripgrep in combinazione con sed. Con Scooter, però, entriamo in un’esperienza completamente diversa, più interattiva ed ergonomica. Inventato da Thomas Schafer, ingegnere in Snyk, Scooter nasce per colmare il gap tra automazione e controllo umano nelle attività di find & replace su più file contemporaneamente.

Avviando semplicemente scooter (o specificando una cartella di lavoro), il tool scansiona ricorsivamente le directory, rispettando file .gitignore e .ignore. Il praticissimo TUI (Text‑based UI) mostra una lista delle occorrenze trovate. Qui possiamo filtrare usando stringhe fisse o espressioni regolari—anche con capture group—e vedere anteprime evidenziate grazie a temi personalizzabili come Catppuccin Macchiato.

Quando arriva il momento di sostituire, l’interfaccia consente di navigare tra i risultati con facilità, di includere o escludere ogni singola istanza con spazi o cursori e persino di aprire il file originale allineato al numero di riga, sfruttando l’editor definito in $EDITOR (oppure sovrascrivendo il comando in configurazione) . È un’esperienza visivamente comoda e più sicura rispetto ai soliti comandi che operano “alla cieca”.

In termini di performance, Scooter utilizza un sistema multithreading che legge i file in parallelo. Un benchmark eseguito sull’intero kernel Linux ha evidenziato un tempo medio di 6,4 s con interfaccia piena e 4,5 s in modalità terminale non interattiva, confrontato con fastmod (4,4 s), ripgrep + sd (4,9 s) e altri tool. A ciò si aggiunge una modalità “no‑tui”, utile per automatizzare le sostituzioni senza GUI. Dal punto di vista pratico, l’installazione è agevole su Linux: disponibile nei repository AUR degli utenti Arch basta digitare da terminale:

Chi preferisce lo sviluppo in ambiente Cargo, può compilare direttamente dalla sorgente. Recentemente, la versione 0.5.3 ha introdotto flag utili per flusso immediato (--immediate-replace, --print-results, --no-tui) e risolto bug nelle terminazioni di riga, segno di un progetto attivo e reattivo alle segnalazioni della community.

Home Scooter

Potrebbe interessarti