Des applications OS X facilitent-elles la recherche et le remplacement sur plusieurs fichiers?

9

Je recherche un outil OS X qui me permet de rechercher et de remplacer une chaîne de recherche dans plusieurs fichiers. Les exigences sont les suivantes:

  • Rechercher et remplacer
  • Recherche par expression régulière
  • Rechercher dans plusieurs fichiers
  • Rechercher parmi les structures de répertoires imbriquées
  • Remplacer l'expression peut utiliser des valeurs de la recherche (expression régulière)
  • L'outil a une interface utilisateur facile à utiliser
  • De préférence gratuit

Je sais que certains éditeurs de texte comme BBEdit ont cette fonctionnalité, mais je préférerais un outil léger qui ne nécessite pas que j'ouvre d'abord les fichiers pour les éditer.

S'il n'y a pas d'outils pour répondre à ces exigences, je considérerais également une alternative en ligne de commande. Je le sais perlet je prends en sedcharge quelque chose comme ça - une solution que je peux définir comme un alias ou une fonction Bash serait la bienvenue dans ce cas.

nwinkler
la source

Réponses:

9

J'utilise généralement TextMate :

Boîte de dialogue Rechercher et remplacer TextMate

TextMate (1) est / était un produit acheté, mais TextMate 2 est actuellement en cours de développement openSource actif sur gitHub et gratuit à utiliser.

childno͡.de
la source
5

Sublime Text est ce que j'utilise, c'est super!

capture d'écran de trouver et remplacer

Texte sublime:

  • est libre d'évaluer (aucun délai n'est imposé)
  • peut rechercher et remplacer
  • peut rechercher par expression régulière
  • peut rechercher dans plusieurs fichiers
  • peut rechercher parmi les structures de répertoires imbriquées
  • peut utiliser les valeurs de la recherche dans l'expression de remplacement
  • possède une interface utilisateur facile à utiliser
Mike
la source
1
Pouvez-vous être un peu plus précis et décrire comment SublimeText résout le problème décrit dans la question?
nohillside
Leur site Web (le lien fourni vous dit tout) mais ... Il est libre d'évaluer (sans limite de temps imposée) Rechercher et remplacer - OUI. Recherche par expression régulière - OUI. Recherchez dans plusieurs fichiers - OUI. Recherchez parmi les structures de répertoires imbriquées - OUI. Remplacer l'expression peut utiliser des valeurs de la recherche (expression régulière) - OUI. L'outil a une interface utilisateur facile à utiliser - OUI. De préférence gratuit - OUI (en quelque sorte).
Mike
3

Vous n'avez pas besoin d'ouvrir les fichiers avec BBEdit. Vous pointez simplement vers un dossier. C'est un outil très puissant, que j'ai souvent utilisé avec un grand nombre de fichiers HTML.

Kirk McElhearn
la source
3

En plus des autres solutions utilisant un éditeur de texte, j'ai trouvé FAR - Find and Replace , un outil de recherche et de remplacement multiplateforme. Ce n'est pas le plus joli, mais on dirait qu'il fait ce que je cherche.

http://findandreplace.sourceforge.net/

nwinkler
la source
2

J'utilise souvent des scripts Ruby comme ceci:

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

Ou vous pouvez utiliser gets(nil)avec -i:

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

Si vous installez Bash 4 et activez globstar, vous pouvez également l'utiliser **dans des shells:

sed -i '' 's/search/replace/g' **/*.txt
Lri
la source
1

C'est exactement ce qui a sedété écrit et cela correspond à toutes vos exigences, sauf que la courbe d'apprentissage est un peu raide.

Pour une courbe d'apprentissage plus douce, essayez TextWrangler de BareBones. Il utilise le moteur de texte BBEdit et, je crois, a toutes les fonctionnalités de recherche et de remplacement de son grand frère

Ɱark Ƭ
la source
1
Je connais la programmation et les scripts bash, mais je n'ai jamais rien fait d'avancé avec sed. Pouvez-vous fournir un exemple sur la façon d'utiliser sedpour remplacer du texte dans une série de fichiers, comme dans la rubyréponse (actuellement) ci-dessus ?
nwinkler
-1

Jetez un œil à ma recherche et remplacement d'applications . Vous pouvez l'utiliser sur plusieurs fichiers ou répertoires, sécuriser vos chaînes de recherche / remplacement et vous pouvez utiliser des expressions régulières.

thomasguenzel
la source
Comment ça marche - pourquoi est-il meilleur que les autres réponses - veuillez fournir plus qu'un lien
user151019
1
Salut et bienvenue à Ask Different! Bien que cela ne dérange pas les développeurs de recommander leurs produits lorsqu'ils résolvent les problèmes présentés, nous vous demandons de fournir un contexte clair pour expliquer pourquoi votre produit est une réponse et comment il résout le problème. Pour plus d'informations sur le fonctionnement de Ask Different et sur le format StackExchange Q&A, veuillez consulter notre FAQ .
Ian C.
Je suppose qu'il a à peu près les mêmes fonctionnalités que les autres outils recommandés ici. La différence est que vous avez une interface graphique et que vous pouvez enregistrer des fichiers contenant vos chaînes de recherche / remplacement. Il possède toutes les fonctionnalités demandées par nwinkler. Il peut rechercher et remplacer (également en utilisant des expressions régulières) dans plusieurs fichiers / structures de répertoires imbriqués et possède (du moins c'est ce que je pense) une interface graphique facile à utiliser.
thomasguenzel