A voir également:
- Problème avec sed
- Sed crlf - Astuces et Solutions
- Remplacez le mot sed par le mot mais dans tout le texte. combien de caractères contient le document suite à cette modification (en incluant les espaces) ? - Guide
- Commande sed pour remplacer du texte ✓ - Forum Linux / Unix
- Sed - Remplacement texte par retour à la ligne ? ✓ - Forum Linux / Unix
- Sed et ses caprices (ou les miens) ✓ - Forum Linux / Unix
3 réponses
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 417
5 mai 2016 à 09:05
5 mai 2016 à 09:05
Salut,
Deux, trois petites choses…
De plus, tu recherches les répertoires (à ce que tu dis), et
Pour le reste, je vois que tu as trouvé les bonnes commandes, que ce soit avec sed ou via l'extension de paramètres du
Deux, trois petites choses…
cd ${PWD}ne sert strictement à rien, puisque
${PWD}contient la valeur du répertoire courant ;-\
ls | blablal'emploi de la commande
lsest une très mauvaise idée pour filtrer le résultat, ne serait-ce qu'à cause des espaces.
De plus, tu recherches les répertoires (à ce que tu dis), et
lsretournera tous les fichiers présents dans le répertoire. Pour n'avoir que les répertoires, mieux vaut privilégier la commande
findet ses options.
Pour le reste, je vois que tu as trouvé les bonnes commandes, que ce soit avec sed ou via l'extension de paramètres du
bash.
merci de me répondre zip31
cd $(PWD) : car mon programme bash est dans /home/prog et que je le lance un peu partout dans mes répertoires
ls : il ni a jamais de fichiers mélangés avec des répertoires, et surtout je n'arrive pas à faire la même chose avec find :(
par contre mes 2 Commande sed ne fonctionnent pas
echo "remplace_" | sed 's/^./\u&/' : ne fait rien
echo ${i} | sed -e `s/\\/-/`:me donne l'aide de sed qui ne m'aide pas :(
cd $(PWD) : car mon programme bash est dans /home/prog et que je le lance un peu partout dans mes répertoires
ls : il ni a jamais de fichiers mélangés avec des répertoires, et surtout je n'arrive pas à faire la même chose avec find :(
par contre mes 2 Commande sed ne fonctionnent pas
echo "remplace_" | sed 's/^./\u&/' : ne fait rien
echo ${i} | sed -e `s/\\/-/`:me donne l'aide de sed qui ne m'aide pas :(
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 417
6 mai 2016 à 08:49
6 mai 2016 à 08:49
Re-
t'affichera tout les répertoires (
Par contre effectivement, ça ne fait rien concrètement sur un éventuel fichier présent.
Pour que le remplacement ait lieu avec la commande sed, il faut l'utiliser conjointement avec la commande
cd $(PWD) : car mon programme bash est dans /home/prog et que je le lance un peu partout dans mes répertoiresNon ! la variable ${PWD} affiche le répertoire courant. Si tu lances ton programme de n'importe où et que ça marche, c'est que ton répertoire (/home/prog) est dans la variable
${PATH}. Par contre, le programme s'exécute bien dans le répertoire d'où il a été appelé.
ls : il ni a jamais de fichiers mélangés avec des répertoires, et surtout je n'arrive pas à faire la même chose avec find :(
find . -maxdepth 1 -type dou
find /chemin/absolu -maxdepth 1 -type d
t'affichera tout les répertoires (
-type d) du répertoire courant (
-maxdepth 1) empêche de descendre dans les répertoires eux-même)
echo "remplace_" | sed 's/^./\u&/' : ne fait rienSi si :
$ echo "remplace_" | sed 's/^./\u&/'
Remplace_
Par contre effectivement, ça ne fait rien concrètement sur un éventuel fichier présent.
echo ${i} | sed -e `s/\\/-/`:me donne l'aide de sed qui ne m'aide pas :(Parce que c'est des quotes simples ( ' ) qu'il faut mettre autour de l'expression et non des quotes inversées ( ` ) qui servent à interpréter une commande en général à l'intérieur d'une variable ou d'une expression. Mais de nos jours leur utilisation est obsolète, on utilise plutôt
$(commande).
Pour que le remplacement ait lieu avec la commande sed, il faut l'utiliser conjointement avec la commande
mv.
$ ls
remplace les espaces un autre rep un rep a trou
$ for i in *; do mv -v "${i}" "$(sed 's/\<./\u&/g;s/ /_/g' <<< ${i})"; done
«remplace les espaces» -> «Remplace_Les_Espaces»
«un autre rep» -> «Un_Autre_Rep»
«un rep a trou» -> «Un_Rep_A_Trou»
$ ls
Remplace_Les_Espaces Un_Autre_Rep Un_Rep_A_Trou
$
totoche
>
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
7 mai 2016 à 06:50
7 mai 2016 à 06:50
je ne comprend pas :(
j'ai des répertoires du style
toto - 2016/01/21 - blabla pour les remplacer par
toto - 2016-01-21 - blabla
en faisant
for i in *; do
mv -v "${i}" "$(sed 's/\<./\u&/g;s/\//-/g' <<< ${i})";
done
j'ai -> mv: impossible de déplacer «Toto - 2016⁄01⁄21 - & Blabla» vers un sous-répertoire de lui-même,
mais si j'ai toto - 2016 /01/21 - blabla
1 espace disparaît entre 2016 et/01
j'ai des répertoires du style
toto - 2016/01/21 - blabla pour les remplacer par
toto - 2016-01-21 - blabla
en faisant
for i in *; do
mv -v "${i}" "$(sed 's/\<./\u&/g;s/\//-/g' <<< ${i})";
done
j'ai -> mv: impossible de déplacer «Toto - 2016⁄01⁄21 - & Blabla» vers un sous-répertoire de lui-même,
mais si j'ai toto - 2016 /01/21 - blabla
1 espace disparaît entre 2016 et/01
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 417
>
totoche
7 mai 2016 à 09:26
7 mai 2016 à 09:26
Un des problèmes vient probablement du fait des slashs (/) dans le nom des répertoires. Le slash sous GNU/Linux désigne la racine et par la suite les répertoires qui en découlent.
Apparemment tes répertoires sont des répertoires créés à l'origine sous Windows. Donc à priori, il te faut les renommer sous Windows avec des outils propres à cet OS.
Apparemment tes répertoires sont des répertoires créés à l'origine sous Windows. Donc à priori, il te faut les renommer sous Windows avec des outils propres à cet OS.
merci de me répondre zip31
non, non ils ont été créé sous Debian ou Kubuntu
non, non ils ont été créé sous Debian ou Kubuntu
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 417
8 mai 2016 à 08:20
8 mai 2016 à 08:20
Montres-moi alors comment tu crées un répertoire avec un slash dans son nom, parce que moi je n'y arrive pas ;-((
Et voila le joli message que j'ai si je veux le faire en graphique :
$ mkdir -v "toto - 2016/01/21 - blabla"
mkdir: impossible de créer le répertoire «toto - 2016/01/21 - blabla»: Aucun fichier ou dossier de ce type
$ mkdir -v "toto - 2016\/01\/21 - blabla"
mkdir: impossible de créer le répertoire «toto - 2016\\/01\\/21 - blabla»: Aucun fichier ou dossier de ce type
$ mkdir -v "toto - 2016_01_21 - blabla"
mkdir: création du répertoire «toto - 2016_01_21 - blabla»
$ ls
toto - 2016_01_21 - blabla
$ rename -n 's/_/\//g' * # simulation (-n)
toto - 2016_01_21 - blabla renamed as toto - 2016/01/21 - blabla
$ rename 's/_/\//g' * # sans simulation (-n)
Can't rename toto - 2016_01_21 - blabla toto - 2016/01/21 - blabla: Aucun fichier ou dossier de ce type
$ ls
toto - 2016_01_21 - blabla
$ mv -v toto\ -\ 2016_01_21\ -\ blabla toto\ -\ 2016\/01\/21\ -\ blabla/
mv: impossible de déplacer «toto - 2016_01_21 - blabla» vers «toto - 2016/01/21 - blabla/»: Aucun fichier ou dossier de ce type
Et voila le joli message que j'ai si je veux le faire en graphique :
totoche
>
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
8 mai 2016 à 09:03
8 mai 2016 à 09:03
avec dolphin ou konqueror :)
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 417
>
totoche
8 mai 2016 à 09:08
8 mai 2016 à 09:08
Tu peux nous afficher le contenu de ton répertoire (
ls -l) ?
totoche
>
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
8 mai 2016 à 09:16
8 mai 2016 à 09:16
une petite partie :)
ls -l
total 348
drwxr-xr-x 2 philippe philippe 4096 mars 21 05:55 Bella Thorne - 2013⁄01⁄08 - Inside - 6th Annual 'Teens for Jeans' Campaign - Palihouse - West Hollywood, California.
drwxr-xr-x 2 philippe philippe 4096 mars 21 05:53 Bella Thorne - 2013⁄01⁄08 - Presentation - 6th Annual 'Teens for Jeans' Campaign - Palihouse - West Hollywood, California.
drwxrwxr-x 2 philippe philippe 4096 mars 20 10:16 Bella Thorne - 2013⁄01⁄29 - Arrives - Premiere Of 'Warm Bodies' - ArcLight Cinerama Dome - Hollywood, California
drwxrwxr-x 2 philippe philippe 4096 mars 20 10:11 Bella Thorne - 2013⁄01⁄29 - Presentation 2 - Premiere Of 'Warm Bodies' - ArcLight Cinerama Dome - Hollywood, California
drwxrwxr-x 2 philippe philippe 4096 mars 20 10:15 Bella Thorne - 2013⁄01⁄29 - Presentation - Premiere Of 'Warm Bodies' - ArcLight Cinerama Dome - Hollywood, California
drwxrwxr-x 2 philippe philippe 4096 mars 21 06:00 Bella Thorne - 2013⁄02⁄02 - Presentation - Premiere Of 'Escape From Planet Earth' - Mann Chinese 6 - Los Angeles, California
drwxrwxr-x 2 philippe philippe 4096 mars 20 10:08 Bella Thorne - 2013⁄02⁄08 - Portrait - 16th Annual 'Friends And Family' pre-GRAMMY event - Paramount Studios - Hollywood, California
drwxrwxr-x 2 philippe philippe 4096 mars 20 10:07 Bella Thorne - 2013⁄02⁄08 - Presentation - 16th Annual 'Friends And Family' pre-GRAMMY event - Paramount Studios - Hollywood, California
drwxrwxr-x 2 philippe philippe 4096 mars 17 13:50 Bella Thorne - 2013⁄02⁄15 - Arrives - 21st Annual Movieguide Awards - Universal Hilton Hotel - Universal City, California
drwxrwxr-x 2 philippe philippe 4096 mars 17 13:50 Bella Thorne - 2013⁄02⁄15 - Presentation - 21st Annual Movieguide Awards - Universal Hilton Hotel - Universal City, California
drwxrwxr-x 2 philippe philippe 4096 mars 17 13:49 Bella Thorne - 2013⁄02⁄15 - Speak Onstage - 21st Annual Movieguide Awards - Universal Hilton Hotel - Universal City, California
drwxrwxr-x 2 philippe philippe 4096 mars 20 10:03 Bella Thorne - 2013⁄03⁄07 - Inside - Joe Fresh at jcp launch event - Joe Fresh at jcp Pop Up - Los Angeles, California
drwxrwxr-x 2 philippe philippe 4096 mars 20 10:04 Bella Thorne - 2013⁄03⁄07 - Presentation - Joe Fresh at jcp launch event - Joe Fresh at jcp Pop Up - Los Angeles, California
drwxrwxr-x 2 philippe philippe 4096 mars 20 09:54 Bella Thorne - 2013⁄03⁄08 - Arrives - 'Dancing With The Stars' - Los Angeles, California
drwxrwxr-x 2 philippe philippe 4096 mars 15 08:08 Bella Thorne - 2013⁄03⁄14 -Premiere Of 'Spring Breakers' - ArcLight Hollywood - Hollywood, California
drwxrwxr-x 2 philippe philippe 4096 mars 20 09:49 Bella Thorne - 2013⁄03⁄19 - Arrives - Premiere Of 'The Host' - ArcLight Cinemas Cinerama Dome - Hollywood, California
ls -l
total 348
drwxr-xr-x 2 philippe philippe 4096 mars 21 05:55 Bella Thorne - 2013⁄01⁄08 - Inside - 6th Annual 'Teens for Jeans' Campaign - Palihouse - West Hollywood, California.
drwxr-xr-x 2 philippe philippe 4096 mars 21 05:53 Bella Thorne - 2013⁄01⁄08 - Presentation - 6th Annual 'Teens for Jeans' Campaign - Palihouse - West Hollywood, California.
drwxrwxr-x 2 philippe philippe 4096 mars 20 10:16 Bella Thorne - 2013⁄01⁄29 - Arrives - Premiere Of 'Warm Bodies' - ArcLight Cinerama Dome - Hollywood, California
drwxrwxr-x 2 philippe philippe 4096 mars 20 10:11 Bella Thorne - 2013⁄01⁄29 - Presentation 2 - Premiere Of 'Warm Bodies' - ArcLight Cinerama Dome - Hollywood, California
drwxrwxr-x 2 philippe philippe 4096 mars 20 10:15 Bella Thorne - 2013⁄01⁄29 - Presentation - Premiere Of 'Warm Bodies' - ArcLight Cinerama Dome - Hollywood, California
drwxrwxr-x 2 philippe philippe 4096 mars 21 06:00 Bella Thorne - 2013⁄02⁄02 - Presentation - Premiere Of 'Escape From Planet Earth' - Mann Chinese 6 - Los Angeles, California
drwxrwxr-x 2 philippe philippe 4096 mars 20 10:08 Bella Thorne - 2013⁄02⁄08 - Portrait - 16th Annual 'Friends And Family' pre-GRAMMY event - Paramount Studios - Hollywood, California
drwxrwxr-x 2 philippe philippe 4096 mars 20 10:07 Bella Thorne - 2013⁄02⁄08 - Presentation - 16th Annual 'Friends And Family' pre-GRAMMY event - Paramount Studios - Hollywood, California
drwxrwxr-x 2 philippe philippe 4096 mars 17 13:50 Bella Thorne - 2013⁄02⁄15 - Arrives - 21st Annual Movieguide Awards - Universal Hilton Hotel - Universal City, California
drwxrwxr-x 2 philippe philippe 4096 mars 17 13:50 Bella Thorne - 2013⁄02⁄15 - Presentation - 21st Annual Movieguide Awards - Universal Hilton Hotel - Universal City, California
drwxrwxr-x 2 philippe philippe 4096 mars 17 13:49 Bella Thorne - 2013⁄02⁄15 - Speak Onstage - 21st Annual Movieguide Awards - Universal Hilton Hotel - Universal City, California
drwxrwxr-x 2 philippe philippe 4096 mars 20 10:03 Bella Thorne - 2013⁄03⁄07 - Inside - Joe Fresh at jcp launch event - Joe Fresh at jcp Pop Up - Los Angeles, California
drwxrwxr-x 2 philippe philippe 4096 mars 20 10:04 Bella Thorne - 2013⁄03⁄07 - Presentation - Joe Fresh at jcp launch event - Joe Fresh at jcp Pop Up - Los Angeles, California
drwxrwxr-x 2 philippe philippe 4096 mars 20 09:54 Bella Thorne - 2013⁄03⁄08 - Arrives - 'Dancing With The Stars' - Los Angeles, California
drwxrwxr-x 2 philippe philippe 4096 mars 15 08:08 Bella Thorne - 2013⁄03⁄14 -Premiere Of 'Spring Breakers' - ArcLight Hollywood - Hollywood, California
drwxrwxr-x 2 philippe philippe 4096 mars 20 09:49 Bella Thorne - 2013⁄03⁄19 - Arrives - Premiere Of 'The Host' - ArcLight Cinemas Cinerama Dome - Hollywood, California
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 417
>
totoche
8 mai 2016 à 09:22
8 mai 2016 à 09:22
Ok. Mais c'est toi qui as créé ces répertoires ?
Ou ils sont issus de téléchargement ?
Ou ils sont issus de téléchargement ?