Créer des dossiers à partir du contenu d'un fichier texte
36 réponses
iDan
Bonjour,
Existe-t-il un utilitaire permettant de générer un ensemble de dossiers
à partir d'une liste de noms se trouvant dans un fichier texte (un nom
par ligne) ?
In article <4cfaec4e$0$24166$c3e8da3$, iDan wrote:
Je viens de voir le script applescript de Patrick S. dans une autre enfilade pour la création de dossiers (mais à partir de noms de fichiers et non à partir du contenu d'un fichier texte). Je vais regarder ça de plus près (ça ressemble à de l'hypercard).
En AppleScript, avec un fichier encodé en UTF-16 ça donne :
set f to choose file set d to choose folder
set ff to (open for access f) set txt to read ff as Unicode text close access ff
tell application "Finder" repeat with n in paragraphs of txt make new folder at d with properties {name:n} end repeat end tell
Si la ligne contient un nom de dossier valide, il devrait être géré correctement. Seul la présence du caractère ':' qui est interdit va poser problème.
Patrick -- Patrick Stadelmann
In article <4cfaec4e$0$24166$c3e8da3$50776f34@news.astraweb.com>,
iDan <danielMac34@invalid.ca> wrote:
Je viens de voir le script applescript de Patrick S. dans une autre
enfilade pour la création de dossiers (mais à partir de noms de
fichiers et non à partir du contenu d'un fichier texte). Je vais
regarder ça de plus près (ça ressemble à de l'hypercard).
En AppleScript, avec un fichier encodé en UTF-16 ça donne :
set f to choose file
set d to choose folder
set ff to (open for access f)
set txt to read ff as Unicode text
close access ff
tell application "Finder"
repeat with n in paragraphs of txt
make new folder at d with properties {name:n}
end repeat
end tell
Si la ligne contient un nom de dossier valide, il devrait être géré
correctement. Seul la présence du caractère ':' qui est interdit va
poser problème.
Patrick
--
Patrick Stadelmann <Patrick.Stadelmann@unine.ch>
In article <4cfaec4e$0$24166$c3e8da3$, iDan wrote:
Je viens de voir le script applescript de Patrick S. dans une autre enfilade pour la création de dossiers (mais à partir de noms de fichiers et non à partir du contenu d'un fichier texte). Je vais regarder ça de plus près (ça ressemble à de l'hypercard).
En AppleScript, avec un fichier encodé en UTF-16 ça donne :
set f to choose file set d to choose folder
set ff to (open for access f) set txt to read ff as Unicode text close access ff
tell application "Finder" repeat with n in paragraphs of txt make new folder at d with properties {name:n} end repeat end tell
Si la ligne contient un nom de dossier valide, il devrait être géré correctement. Seul la présence du caractère ':' qui est interdit va poser problème.
Patrick -- Patrick Stadelmann
ludovic.cynomys
iDan wrote:
Je vais regarder ça de plus près (ça ressemble à de l'hypercard).
kof, kof...
-- Qu'est-ce qu'on fout là tous, dans ce petit coin d'Univers ?
iDan <danielMac34@invalid.ca> wrote:
Je vais regarder ça de plus près (ça ressemble à de l'hypercard).
kof, kof...
--
Qu'est-ce qu'on fout là tous, dans ce petit coin d'Univers ?
for i in `cat fichiertexte' ; do mkdir -p -- "$i" ; done
Là Eric, tu me déçois : - tu as copié la mauvaise apostrophe - et même en la corrigeant, ça ne marche pas mieux
La commande suivante devrait faire l'affaire:
xargs -I% mkdir % < fichiertexte
blanc
TK wrote:
La commande suivante devrait faire l'affaire:
xargs -I% mkdir % < fichiertexte
Effectivement, elle marche impec. Et j'ajouterai que pour une bonne traduction des accents, il suffit que le fichier texte soit en "UTF-8 no BOM".
Je précise ce dernier point : - dans Textwrangler ouvrir le fichier texte ; - s'il les accents ne sont pas OK dans le fichier, utiliser la commande : File --> Reopen using encoding ... jusqu'à ce qu'ils le soient ; - si l'encodage obtenu (qui apparait en bas de la fenêtre) n'est pas celui que j'ai dit, modifier le en utilisant le menu déroulant ;
Et j'ajoute que j'ai d'abord essayé avec "UTF-8" et j'ai alors des caractères parasites sur le nom du premier dossier. C'est avec "no BOM" que ces caractères disparaissent. Explications : <http://fr.wikipedia.org/wiki/Marque_d'ordre_des_octets>
-- JiPaul. / /--/--// Jean-Paul Blanc |/| L | quelquepart en (somewhere in) /|| = ||| FRANCE
TK <tango.kilo@online.fr> wrote:
La commande suivante devrait faire l'affaire:
xargs -I% mkdir % < fichiertexte
Effectivement, elle marche impec.
Et j'ajouterai que pour une bonne traduction des accents, il suffit que
le fichier texte soit en "UTF-8 no BOM".
Je précise ce dernier point :
- dans Textwrangler ouvrir le fichier texte ;
- s'il les accents ne sont pas OK dans le fichier,
utiliser la commande : File --> Reopen using encoding ...
jusqu'à ce qu'ils le soient ;
- si l'encodage obtenu (qui apparait en bas de la fenêtre) n'est pas
celui que j'ai dit, modifier le en utilisant le menu déroulant ;
Et j'ajoute que j'ai d'abord essayé avec "UTF-8" et j'ai alors des
caractères parasites sur le nom du premier dossier. C'est avec "no BOM"
que ces caractères disparaissent. Explications :
<http://fr.wikipedia.org/wiki/Marque_d'ordre_des_octets>
--
JiPaul.
/ /--/--//\ Jean-Paul Blanc
|/| L |\ quelquepart en (somewhere in)
/|| = |||\ FRANCE
Effectivement, elle marche impec. Et j'ajouterai que pour une bonne traduction des accents, il suffit que le fichier texte soit en "UTF-8 no BOM".
Je précise ce dernier point : - dans Textwrangler ouvrir le fichier texte ; - s'il les accents ne sont pas OK dans le fichier, utiliser la commande : File --> Reopen using encoding ... jusqu'à ce qu'ils le soient ; - si l'encodage obtenu (qui apparait en bas de la fenêtre) n'est pas celui que j'ai dit, modifier le en utilisant le menu déroulant ;
Et j'ajoute que j'ai d'abord essayé avec "UTF-8" et j'ai alors des caractères parasites sur le nom du premier dossier. C'est avec "no BOM" que ces caractères disparaissent. Explications : <http://fr.wikipedia.org/wiki/Marque_d'ordre_des_octets>
-- JiPaul. / /--/--// Jean-Paul Blanc |/| L | quelquepart en (somewhere in) /|| = ||| FRANCE
blanc
TK wrote:
La commande suivante devrait faire l'affaire:
xargs -I% mkdir % < fichiertexte
Autre précision : en mettant dans un fichier script les deux lignes suivantes :
#!/bin/zsh xargs -I% mkdir % < $1
alors si le fichier script s'appelle : mkdoss et si on la rendu exécutable par : chmod u+x mkdoss alors on peut lancer le script par : mkdoss fichiertexte
-- JiPaul. / /--/--// Jean-Paul Blanc |/| L | quelquepart en (somewhere in) /|| = ||| FRANCE
TK <tango.kilo@online.fr> wrote:
La commande suivante devrait faire l'affaire:
xargs -I% mkdir % < fichiertexte
Autre précision : en mettant dans un fichier script les deux lignes
suivantes :
#!/bin/zsh
xargs -I% mkdir % < $1
alors si le fichier script s'appelle : mkdoss
et si on la rendu exécutable par : chmod u+x mkdoss
alors on peut lancer le script par : mkdoss fichiertexte
--
JiPaul.
/ /--/--//\ Jean-Paul Blanc
|/| L |\ quelquepart en (somewhere in)
/|| = |||\ FRANCE
Autre précision : en mettant dans un fichier script les deux lignes suivantes :
#!/bin/zsh xargs -I% mkdir % < $1
alors si le fichier script s'appelle : mkdoss et si on la rendu exécutable par : chmod u+x mkdoss alors on peut lancer le script par : mkdoss fichiertexte
-- JiPaul. / /--/--// Jean-Paul Blanc |/| L | quelquepart en (somewhere in) /|| = ||| FRANCE
blanc
TK wrote:
La commande suivante devrait faire l'affaire:
xargs -I% mkdir % < fichiertexte
Autre précision : en mettant dans un fichier script les deux lignes suivantes :
#!/bin/zsh xargs -I% mkdir % < $1
alors si le fichier script s'appelle : mkdoss et si on la rendu exécutable par : chmod u+x mkdoss alors on peut exécuter la commande voulue par : mkdoss fichiertexte
-- JiPaul. / /--/--// Jean-Paul Blanc |/| L | quelquepart en (somewhere in) /|| = ||| FRANCE
TK <tango.kilo@online.fr> wrote:
La commande suivante devrait faire l'affaire:
xargs -I% mkdir % < fichiertexte
Autre précision : en mettant dans un fichier script les deux lignes
suivantes :
#!/bin/zsh
xargs -I% mkdir % < $1
alors si le fichier script s'appelle : mkdoss
et si on la rendu exécutable par : chmod u+x mkdoss
alors on peut exécuter la commande voulue par : mkdoss fichiertexte
--
JiPaul.
/ /--/--//\ Jean-Paul Blanc
|/| L |\ quelquepart en (somewhere in)
/|| = |||\ FRANCE
Autre précision : en mettant dans un fichier script les deux lignes suivantes :
#!/bin/zsh xargs -I% mkdir % < $1
alors si le fichier script s'appelle : mkdoss et si on la rendu exécutable par : chmod u+x mkdoss alors on peut exécuter la commande voulue par : mkdoss fichiertexte
-- JiPaul. / /--/--// Jean-Paul Blanc |/| L | quelquepart en (somewhere in) /|| = ||| FRANCE
Patrick Stadelmann
In article <1jt1gz7.nsg4z1122fz02N%, (JiPaul) wrote:
TK wrote:
> La commande suivante devrait faire l'affaire: > > xargs -I% mkdir % < fichiertexte
Effectivement, elle marche impec.
l'ue --> ne passe pas (xargs: unterminated quote) l'eee et l'ue --> devient : leee et lue
Bref, c'est loin d'être "impec" !
Patrick -- Patrick Stadelmann
In article <1jt1gz7.nsg4z1122fz02N%blanc@empty.org>,
blanc@empty.org (JiPaul) wrote:
TK <tango.kilo@online.fr> wrote:
> La commande suivante devrait faire l'affaire:
>
> xargs -I% mkdir % < fichiertexte
Effectivement, elle marche impec.
l'ue --> ne passe pas (xargs: unterminated quote)
l'eee et l'ue --> devient : leee et lue
Bref, c'est loin d'être "impec" !
Patrick
--
Patrick Stadelmann <Patrick.Stadelmann@unine.ch>
In article <1jt1gz7.nsg4z1122fz02N%, (JiPaul) wrote:
TK wrote:
> La commande suivante devrait faire l'affaire: > > xargs -I% mkdir % < fichiertexte
Effectivement, elle marche impec.
l'ue --> ne passe pas (xargs: unterminated quote) l'eee et l'ue --> devient : leee et lue
Bref, c'est loin d'être "impec" !
Patrick -- Patrick Stadelmann
blanc
Patrick Stadelmann wrote:
l'ue --> ne passe pas (xargs: unterminated quote) l'eee et l'ue --> devient : leee et lue
Bref, c'est loin d'être "impec" !
Exact. Donc éviter les caractères ' " / dans le fichier texte. -- JiPaul. / /--/--// Jean-Paul Blanc |/| L | quelquepart en (somewhere in) /|| = ||| FRANCE
Patrick Stadelmann <Patrick.Stadelmann@unine.ch> wrote:
l'ue --> ne passe pas (xargs: unterminated quote)
l'eee et l'ue --> devient : leee et lue
Bref, c'est loin d'être "impec" !
Exact. Donc éviter les caractères ' " / dans le fichier texte.
--
JiPaul.
/ /--/--//\ Jean-Paul Blanc
|/| L |\ quelquepart en (somewhere in)
/|| = |||\ FRANCE
l'ue --> ne passe pas (xargs: unterminated quote) l'eee et l'ue --> devient : leee et lue
Bref, c'est loin d'être "impec" !
Exact. Donc éviter les caractères ' " / dans le fichier texte. -- JiPaul. / /--/--// Jean-Paul Blanc |/| L | quelquepart en (somewhere in) /|| = ||| FRANCE
TK
Le 05/12/10 18:38, Patrick Stadelmann a écrit :
In article<1jt1gz7.nsg4z1122fz02N%, (JiPaul) wrote:
TK wrote:
La commande suivante devrait faire l'affaire:
xargs -I% mkdir %< fichiertexte
Effectivement, elle marche impec.
l'ue --> ne passe pas (xargs: unterminated quote) l'eee et l'ue --> devient : leee et lue
Bref, c'est loin d'être "impec" !
Patrick
C'est problème avec le shell, dès qu'on commence à jouer avec les quotes ca devient compliqué. Il faut soit modifier fichiertexte pour protéger les ' en les préfixant par , soit demander à sed de le faire:
sed "s/'/'/" fichiertexte | xargs -I% mkdir -- %
Le 05/12/10 18:38, Patrick Stadelmann a écrit :
In article<1jt1gz7.nsg4z1122fz02N%blanc@empty.org>,
blanc@empty.org (JiPaul) wrote:
TK<tango.kilo@online.fr> wrote:
La commande suivante devrait faire l'affaire:
xargs -I% mkdir %< fichiertexte
Effectivement, elle marche impec.
l'ue --> ne passe pas (xargs: unterminated quote)
l'eee et l'ue --> devient : leee et lue
Bref, c'est loin d'être "impec" !
Patrick
C'est problème avec le shell, dès qu'on commence à jouer avec les quotes
ca devient compliqué. Il faut soit modifier fichiertexte pour protéger
les ' en les préfixant par , soit demander à sed de le faire:
In article<1jt1gz7.nsg4z1122fz02N%, (JiPaul) wrote:
TK wrote:
La commande suivante devrait faire l'affaire:
xargs -I% mkdir %< fichiertexte
Effectivement, elle marche impec.
l'ue --> ne passe pas (xargs: unterminated quote) l'eee et l'ue --> devient : leee et lue
Bref, c'est loin d'être "impec" !
Patrick
C'est problème avec le shell, dès qu'on commence à jouer avec les quotes ca devient compliqué. Il faut soit modifier fichiertexte pour protéger les ' en les préfixant par , soit demander à sed de le faire:
sed "s/'/'/" fichiertexte | xargs -I% mkdir -- %
Sinmian
Salut Patrick,
Solution élégante — même si un shell peut désormais le faire — dont je dois avoir le code en archive quelque part... qui remonte à un moment, sans doute où il n'y avait que la souris et le glisser/déposer sur nos macs.
:-)
-- If I sit silently, I have sinned. [Mohamed Mossadegh]
Salut Patrick,
Solution élégante — même si un shell peut désormais le faire — dont je
dois avoir le code en archive quelque part... qui remonte à un moment,
sans doute où il n'y avait que la souris et le glisser/déposer sur nos
macs.
:-)
--
If I sit silently, I have sinned.
[Mohamed Mossadegh]
Solution élégante — même si un shell peut désormais le faire — dont je dois avoir le code en archive quelque part... qui remonte à un moment, sans doute où il n'y avait que la souris et le glisser/déposer sur nos macs.
:-)
-- If I sit silently, I have sinned. [Mohamed Mossadegh]