Léa-Linux & amis :   LinuxFR   GCU-Squad   GNU
Suppression d'un espace au début d'un fichier
Envoyé par: yerosnimus

Bonjour,

j'ai essayé de supprimer un espace au début du nom de plusieurs fichiers PDF par script.

J'ai essayé la commande suivante :

rename 's/^ //' mon_fichier.pdf


Sans succès.

Est-ce que je me trompe, existe t-il un autre moyen ?

Cordialement

Poste le Thursday 18 November 2010 17:13:52
Répondre     Citer    
Re: Suppression d'un espace au début d'un fichier
Envoyé par: lilian_h

Bonjour,

Tu peux taper ça:

for f in "$(ls -1)" ; do mv "$f" $f ; done

Lilian.

Poste le Thursday 18 November 2010 17:16:38
Répondre     Citer    
Re: Suppression d'un espace au début d'un fichier
Envoyé par: lilian_h

Les fichiers qui n'ont pas d'espace ne seront pas impactés

Lilian.

Poste le Thursday 18 November 2010 17:17:07
Répondre     Citer    
Re: Suppression d'un espace au début d'un fichier
Envoyé par: lilian_h

Ou alors ça, c'est plus joli
for f in $(ls -1 | grep -e '^\ ') ; do mv " $f" $f ; done

Poste le Thursday 18 November 2010 17:20:30
Répondre     Citer    
Re: Suppression d'un espace au début d'un fichier
Envoyé par: yerosnimus

Merci pour vos réponses mais aucune des deux solutions ne fonctionnent.

J'ai donc essayé de décomposer en faisant ceci :

ls -l | grep -e '^\ '

et à ma grande surprise cela ne renvoi aucun résultat.

Pourtant si je fais ls -l suivi de deux fois TAB pour la complétion automatique, le shell me renvoi ceci :

\ Edition\ Comptable\ ... .pdf

La présence de l'antislash démontre bien la présence d'un espace !

Cordialement,

Poste le Thursday 18 November 2010 17:29:05
Répondre     Citer    
Re: Suppression d'un espace au début d'un fichier
Envoyé par: lilian_h

Il y a surement une erreur de lecture... la police de ce forum n'est pas très adaptée.

Je n'ai pas écris ls -l mais ls -1
(le chiffre un)
Lilian.

Poste le Thursday 18 November 2010 17:36:50
Répondre     Citer    
Re: Suppression d'un espace au début d'un fichier
Envoyé par: yerosnimus

Oups, effectivement, j'ai lu un peu vite.

Bon en utilisant ls -1 | grep -e '^\ ', la commande renvoi bien le nom du fichier mais quand j'utilise les deux scripts fournis, les deux échouent car la commande mv essaie de renommer chaque partie du nom du fichier pdf qui est composé de plein d'espace.

Pour être plus clair, voici le nom du fichier :

\ Edition\ Comptable\ Dossier\ XXXXX\ -\ M\ TARTANMPION\ JEAN\ Exercice\ du\ 01\ 01\ 2010\ au\ 31\ 12\ 2010.pdf

Les deux scripts échouent avec ces erreurs :

mv: ne peut évaluer ` Edition': Aucun fichier ou répertoire de ce type
mv: ne peut évaluer ` Comptable': Aucun fichier ou répertoire de ce type
mv: ne peut évaluer ` Dossier': Aucun fichier ou répertoire de ce type
mv: ne peut évaluer ` XXX': Aucun fichier ou répertoire de ce type
mv: ne peut évaluer ` -': Aucun fichier ou répertoire de ce type
mv: ne peut évaluer ` M': Aucun fichier ou répertoire de ce type
mv: ne peut évaluer ` TARTANMPION': Aucun fichier ou répertoire de ce type
mv: ne peut évaluer ` JEAN': Aucun fichier ou répertoire de ce type
mv: ne peut évaluer ` Exercice': Aucun fichier ou répertoire de ce type
mv: ne peut évaluer ` du': Aucun fichier ou répertoire de ce type
mv: ne peut évaluer ` 01': Aucun fichier ou répertoire de ce type
mv: ne peut évaluer ` 01': Aucun fichier ou répertoire de ce type
mv: ne peut évaluer ` 2010': Aucun fichier ou répertoire de ce type
mv: ne peut évaluer ` au': Aucun fichier ou répertoire de ce type
mv: ne peut évaluer ` 31': Aucun fichier ou répertoire de ce type
mv: ne peut évaluer ` 12': Aucun fichier ou répertoire de ce type
mv: ne peut évaluer ` 2010.pdf*': Aucun fichier ou répertoire de ce type

Intéressant, n'est-il pas ?

Cordialement,

Poste le Thursday 18 November 2010 17:48:22
Répondre     Citer    
Re: Suppression d'un espace au début d'un fichier
Envoyé par: lilian_h

C'est normal, je n'avais pas saisi que tu avais aussi des espaces dans les noms des fichiers.

Essais plutot avec ca:

ls -1 | grep -e '^\ ' | {
    while read -r f ; do
	mv " $f" "$f"
    done
}

Lilian.

Poste le Thursday 18 November 2010 18:18:21
Répondre     Citer    
Re: Suppression d'un espace au début d'un fichier
Envoyé par: yerosnimus

Citation
lilian_h
> C'est normal, je n'avais pas saisi que tu avais
> aussi des espaces dans les noms des fichiers.

En même temps, je n'avais paut-être pas été très clair :-)

Bon quoi qu'il en soit, lorsque j'exécute ce script, je me retrouve toujours avec ce message d'erreur :

mv: ne peut évaluer ` Edition Comptable Dossier XXXX - M TARTANMPION JEAN Exercice du 01 01 2010 au 31 12 2010.pdf*': Aucun fichier ou répertoire de ce type

Peut-être faudrait-il arriver à "échapper" l'espace du début pour la commande mv ? Mais je ne sais même pas si c'est possible.

Encore merci pour ton aide et ta patience

Poste le Friday 19 November 2010 10:31:56
Répondre     Citer    
Re: Suppression d'un espace au début d'un fichier
Envoyé par: lilian_h

Bonjour,

C'est étrange ca fonctionne parfaitement chez moi...

Sur quel système es-tu ?

Lilian.

Poste le Friday 19 November 2010 10:40:52
Répondre     Citer    
Re: Suppression d'un espace au début d'un fichier
Envoyé par: yerosnimus

Sur une mandriva, version du noyau 2.6.22.12-server-1mdv

Poste le Friday 19 November 2010 11:17:11
Répondre     Citer    
Re: Suppression d'un espace au début d'un fichier
Envoyé par: lilian_h

Le problème (je pense) c'est l'étoile après le .pdf.

Je n'ai pas ça chez moi...

ls -1 | grep -e '^\ ' | sed -e s'/\*//'g | {
    while read -r f ; do
	mv " $f" "$f"
    done
}

Essai d'ajouter ce qui est en rouge

Lilian.

Poste le Friday 19 November 2010 11:40:08
Répondre     Citer    
Re: Suppression d'un espace au début d'un fichier
Envoyé par: yerosnimus

Citation
lilian_h
> Le problème (je pense) c'est l'étoile après le
> .pdf.

C'était ça ! Je ne te remercierai jamais assez, ton aide fut précieuse.

Cordialement

Poste le Friday 19 November 2010 13:55:29
Répondre     Citer    
Re: Suppression d'un espace au début d'un fichier
Envoyé par: lilian_h

de rien !

Au plaisir !

Poste le Friday 19 November 2010 16:00:34
Répondre     Citer    

Veuillez vous authentifier auparavant pour commenter.

 

Ce forum !
Suppression d'un espace au début d'un fichier
Un problème avec une commande du shell ? Comment utiliser la crontab ? Vous avez des soucis pour la gestion réseau sous Linux ? Pour vous la gestion des utilisateurs/groupes est du chinois ? Etc... Posez donc vos questions ici.

Sauf mention contraire, les documentations publiées sont sous licence Creative-Commons