Le app di OS X semplificano la ricerca e la sostituzione su più file?

8

Sto cercando uno strumento OS X che mi permetta di cercare e sostituire una stringa di ricerca in più file. I requisiti sono i seguenti:

  • Cerca e sostituisci
  • Ricerca per espressione regolare
  • Ricerca su più file
  • Ricerca tra strutture di directory annidate
  • Sostituisci espressione può utilizzare i valori dalla ricerca (Espressione regolare)
  • Lo strumento ha un'interfaccia utente facile da usare
  • Preferibilmente gratuito

So che alcuni editor di testo come BBEdit hanno questa funzionalità, ma preferirei uno strumento leggero che non mi imponga di aprire prima i file per la modifica.

Se non ci sono strumenti per soddisfare questi requisiti, considererei anche un'alternativa da riga di comando. So che perl e sed supportano qualcosa del genere: in questo caso, una soluzione che posso definire sia come alias o funzione di Bash sarebbe

    
posta nwinkler 20.02.2013 - 08:21
fonte

7 risposte

9

In genere utilizzo TextMate :

TextMate (1) è / era un prodotto di acquisto, ma TextMate 2 è attualmente in sviluppo openSource attivo su gitHub e gratuito da usare.

    
risposta data 20.02.2013 - 08:47
fonte
5

Testo sublime è quello che uso, è fantastico!

Testo sublime:

  • è libero di valutare (nessun limite di tempo imposto)
  • può cercare e sostituire
  • può cercare per espressione regolare
  • può cercare su più file
  • può cercare tra le strutture di directory nidificate
  • può utilizzare i valori dalla ricerca in Sostituisci espressione
  • ha un'interfaccia utente facile da usare
risposta data 26.02.2013 - 02:21
fonte
3

Non devi aprire i file con BBEdit. Devi solo indicarlo in una cartella. È uno strumento molto potente, che ho spesso usato con un gran numero di file HTML.

    
risposta data 20.02.2013 - 08:38
fonte
3

Oltre alle altre soluzioni che utilizzano un editor di testo, ho trovato FAR - Trova e sostituisci , uno strumento di ricerca e sostituzione multipiattaforma. Non è il più bello, ma sembra che faccia quello che sto cercando.

link

    
risposta data 21.02.2013 - 09:17
fonte
2

Uso spesso gli script Ruby in questo modo:

Dir["**/*.txt"].each { |f|
  IO.write(f, IO.read(f).gsub(/search/, "replace"))
}

Oppure puoi utilizzare gets(nil) con -i :

ruby -i -e 'print gets(nil).gsub(/search/, "replace")' *.txt

Se installa Bash 4 e attiva globstar, puoi utilizzare ** anche in shell:

sed -i '' 's/search/replace/g' **/*.txt
    
risposta data 26.02.2013 - 11:18
fonte
1

Questo è esattamente sed è stato scritto e soddisfa tutti i tuoi requisiti, tranne che la curva di apprendimento è un po 'ripida.

Per una curva di apprendimento più delicata, prova TextWrangler da BareBones. Usa il motore di testo BBEdit e, credo, ha la ricerca completa & sostituire la funzionalità del suo fratello maggiore

    
risposta data 27.02.2013 - 21:44
fonte
-1

Dai un'occhiata alla mia app Cerca e sostituisci . Puoi usarlo su più file o directory, proteggere le tue stringhe di ricerca / sostituzione e puoi usare espressioni regolari.

    
risposta data 15.05.2014 - 23:47
fonte