# Automator Textedit



## Astronight (28 Décembre 2010)

Bonjour j'ai un petit texte( c'est des <i>) à supprimer sur une centaine de fichiers textedit.

J'ai fait le tour d'automator mais je n'arrive pas à trouver comment faire.
Il n'y a pas la fonction remplacer dans Automator...
quelqu'un pourrait m'aider? Merci


----------



## Membre supprimé 2 (28 Décembre 2010)

Bonjour.

http://sw.ixoft.com/texfinderx/

Il doit y avoir bien d'autres solutions, mais c'est un freeware tout simple et il marche bien : on sélectionne les fichiers/dossiers, on saisit le texte à rechercher/remplacer (à remplacer par rien, si l'on veut supprimer) et il fait le travail. Il a même des fonctions avancées assez puissantes pour rechercher/remplacer plusieurs extraits en une seule passe.


----------



## Astronight (28 Décembre 2010)

MERCI! C'est exactement ce qu'il me fallait!
Remplacer en 1 clin d'oeil sur 10 000 fichiers, 


Mais je maintiens ma question, si par exemple je Telecharge un nouveau fichier, je veux remplacer "<i>" par rien (soit le supprimer). Est-il possible de le faire par une quelquonque action de dossier?
Je le glisse dans le dossier par exemple et c'est bon ce que je voulais remplacer a été remplacé..!


----------



## Membre supprimé 2 (28 Décembre 2010)

Je vois qu'on a de l'ambition... 

À mon humble avis, seul un script assez complexe peut réaliser cela. Et ce n'est pas du tout ma partie. Il faudrait qu'un Seigneur du script s'intéresse à ce cas.

*Edit :*

Ceci dit, allons donc jeter un coup d'oeil sur TextSoap, cela en vaut peut-être la peine.


----------



## Anonyme (29 Décembre 2010)

Bonsoir,



Astronight a dit:


> Mais je maintiens ma question, si par exemple je Telecharge un nouveau fichier, je veux remplacer "<i>" par rien (soit le supprimer). Est-il possible de le faire par une quelquonque action de dossier?


Oui c'est très simple.

Ce script *AppleScript* est écrit pour être utilisé comme action de dossier.

```
on adding folder items to this_folder after receiving these_items
	repeat with i in these_items
		if (i as string) ends with ".txt" then
			set tFile to quoted form of POSIX path of i
			do shell script "/usr/bin/perl -i -p -e 's/<i>//g;' " & tFile
		end if
	end repeat
end adding folder items to
```
Dans cet exemple, seuls les fichiers *.txt* seront traités.


*Note du modo : *mais &#8230; Si vous souhaitez approfondir cette voie, vous devrez pour ça aller ouvrir un topic dans le forum "Développement sur Mac", car si les actions "Automator" relèvent du forum qui traite de l'application visée par le processus, il n'en va pas de même des scripts AppleScript.


----------



## Astronight (29 Décembre 2010)

Merci beaucoup à vous deux, 
Par contre, j'ai essayé textsoap. Il n'a pa vraiment l'air de marcher.

En ce qui concerne Mac_jac, Merci pour ton script automator, mais justement je souhaiterait modifier des fichiers Srt!

Est)il possible de modifier ton scrit pour y arriver?

Merci

Edit : J'ai essayé de remplacer le .txt en .srt mais ca n'a pas l'air de marcher
Edit 2: Modérateur, vu que le sujet dérive sur des applescripts, pouvez vous le déplacer dans la catégorie appropriée?


----------



## Larme (29 Décembre 2010)

Et moi qui ai fait un mini programme en C++, en ligne de commande pour virer les tags des srt, je me demande maintenant si ce n'était pas plus simple avec un AppleScript


----------



## Membre supprimé 2 (29 Décembre 2010)

C'est exactement ce que je disais. Quand un problème semble insoluble, il y a toujours un as du script qui débarque avec une solution.


----------



## Anonyme (29 Décembre 2010)

Bonjour,



Astronight a dit:


> En ce qui concerne Mac_jac, Merci pour ton script automator, mais justement je souhaiterait modifier des fichiers Srt!


Oui il faut modifier par  *".srt"*
Le script n'est pas écrit pour être utilisé dans *Automator*.

Ouvre l'application "Éditeur AppleScript" ou "Éditeur de Scripts".
Copie/colle le script dans la fenêtre

Enregistre-le au format *Script* dans le dossier "*Folder Action Scripts*" du dossier "*Scripts*" du dossier "*Bibliothèque*" 

- Active les actions de dossier
- Joins le script au dossier concerné
Voir l'aide Mac  pour plus d'informations concernant les deux derniers points

---------- Nouveau message ajouté à 11h54 ---------- Le message précédent a été envoyé à 11h43 ----------

Bonjour,



Larme a dit:


> Et moi qui ai fait un mini programme en C++, en ligne de commande pour virer les tags des srt, je me demande maintenant si ce n'était pas plus simple avec un AppleScript


Je ne sais pas, je ne connais pas le *C++* pour faire un programme.
Mais pour moi , je peux l'écrire en perl :rateau:


----------



## Larme (29 Décembre 2010)

Ça m'aura au moins fait bosser le C++ :°)


----------



## Astronight (30 Décembre 2010)

Exellente technique Mac_jac ! Merci 
Il marche tres bien ! Juste un petit Défault, Il m'a tout supprimé ^^' tout le fichier Srt.

J'ai suivi tes conseils, J'ai cree ces 2 scripts
	
	



```
on adding folder items to this_folder after receiving these_items
	repeat with i in these_items
		if (i as string) ends with ".srt" then
			set tFile to quoted form of POSIX path of i
			do shell script "/usr/bin/perl -i -p -e 's/<i>//g;' " & tFile
		end if
	end repeat
end adding folder items to
```

et 
	
	



```
on adding folder items to this_folder after receiving these_items
	repeat with i in these_items
		if (i as string) ends with ".srt" then
			set tFile to quoted form of POSIX path of i
			do shell script "/usr/bin/perl -i -p -e 's/</i>//g;' " & tFile
		end if
	end repeat
end adding folder items to
```

Afin de supprimer les <i> et </i> mais voila comme je vous l'ai dis, quand je glisse le fichier srt, tout est supprimé..
Comment pourrais-je modifier le(s) script(s)


----------



## Anonyme (30 Décembre 2010)

Bonjour,



Astronight a dit:


> Exellente technique Mac_jac ! Merci
> Il marche tres bien ! Juste un petit Défault, Il m'a tout supprimé ^^' tout le fichier Srt.
> Afin de supprimer les <i> et </i>


Oui, c'est normal puisque la syntaxe n'est pas correcte.

La barre oblique est un caractère réservé, il faut l'échapper par la barre oblique inversée ( une fois dans un fichier shell --> *\/*, deux fois dans un AppleScript --> *\\/*)

Voici le script, aucun besoin d'avoir deux scripts pour faire ça.

```
on adding folder items to this_folder after receiving these_items
	repeat with i in these_items
		if (i as string) ends with ".srt" then
			set tFile to quoted form of POSIX path of i
			do shell script "/usr/bin/perl -i -p -e 's/<\\/?i>//g;' " & tFile
		end if
	end repeat
end adding folder items to
```

*\\/?* Le point d'interrogation veut dire zéro ou une occurrences de la barre oblique dans le texte recherché.

Voir ce site pour plus d'informations sur les Expressions régulières

Tout peut se faire dans un seul do shell script 
Voici un exemple qui supprime les *<i>*, *</i>* et le texte *jhjhkhkhk*

```
do shell script "/usr/bin/perl -i -p -e 's/<\\/?i>//g;s/jhjhkhkhk//g;' " & tFile
```
il faut séparer les commandes par un point-virgule


----------



## Astronight (31 Décembre 2010)

Merci beaucoup!
Ca marche vraiment super bien maintenant!
Et sympa le "?" qui permet de compacter les <i> et </i> en une seule expression^^'


----------

