# Test fichier \[Terminé\]

**URL:** <https://www.debian-fr.org/t/test-fichier-termine/13110>\
**Category:** Programmation\
**Created:** [Février 20, 2016, 5:24 UTC](https://www.debian-fr.org/t/test-fichier-termine/13110 "2016-02-20T17:24:08Z")\
**Posts on this page:** 12\
**Page:** 1

<div class="post-metadata">

**Author:** ![vohu](https://www.debian-fr.org/user_avatar/www.debian-fr.org/vohu/32/4108_2.png) [@vohu](https://www.debian-fr.org/u/vohu)\
**Post date:** [Février 20, 2016, 5:24 UTC](https://www.debian-fr.org/t/test-fichier-termine/13110/1 "2016-02-20T17:24:08Z")

</div>

Bonjour, je voudrai faire un script qui m’éfface des fichiers dans un répertoire si dans le meme dossier n’existe pas un fichier de meme nom mais avec une extention différente…

je ne sais programmer qu’en VB, je suis un peu perdu 😊  
quelqu’un peu m’aider ?

je lance mon script comme ca

ls | xargs -t -i{} ./net.sh{}

[code]#!/bin/bash  
nomfich=$1  
nom=${nomfich%._}  
extention=${nomfich##_.}

echo "Affiche les variables"  
echo $nomfich  
echo $nom  
echo $extention

#arret si fichier du script  
if [#nomfich -eq $0]; then  
exit 1  
fi

echo “entre dans CASE”

# Case select…

case $extention in  
"dat")  
# si fichier dat sans fichier png  
echo “dat"  
if test -s $nom”.png"; then  
echo "ne fait rien"  
else  
echo “suppression du fichier"  
rm nomfich  
fi  
;;  
“png”)  
# si fichier png sans fichier dat  
echo “arret"  
if test -s $nom”.dat”; then  
echo "ne fait rien"  
else  
echo "suppression du fichier"  
rm nomfich  
fi  
;;  
\*)  
echo "erreur sur le fichier"  
esac  
exit

[/code]

---

<div class="post-metadata">

**Author:** ![vohu](https://www.debian-fr.org/user_avatar/www.debian-fr.org/vohu/32/4108_2.png) [@vohu](https://www.debian-fr.org/u/vohu)\
**Post date:** [Février 20, 2016, 5:24 UTC](https://www.debian-fr.org/t/test-fichier-termine/13110/2 "2016-02-20T17:24:10Z")

</div>

comment on concatene 2 textes ??? ca me fait des erreurs avec & ou + !(

---

<div class="post-metadata">

**Author:** ![fran.b](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/f/d78d45/32.png) [@fran.b](https://www.debian-fr.org/u/fran.b)\
**Post date:** [Février 20, 2016, 5:24 UTC](https://www.debian-fr.org/t/test-fichier-termine/13110/3 "2016-02-20T17:24:10Z")

</div>

$nom".dat" où $nom.dat

---

<div class="post-metadata">

**Author:** ![vohu](https://www.debian-fr.org/user_avatar/www.debian-fr.org/vohu/32/4108_2.png) [@vohu](https://www.debian-fr.org/u/vohu)\
**Post date:** [Février 20, 2016, 5:24 UTC](https://www.debian-fr.org/t/test-fichier-termine/13110/4 "2016-02-20T17:24:10Z")

</div>

maintenant il me dit  
"line 41: syntax error: unexpected end of file" mais il n’y a rien a cette ligne

---

<div class="post-metadata">

**Author:** ![fran.b](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/f/d78d45/32.png) [@fran.b](https://www.debian-fr.org/u/fran.b)\
**Post date:** [Février 20, 2016, 5:24 UTC](https://www.debian-fr.org/t/test-fichier-termine/13110/5 "2016-02-20T17:24:10Z")

</div>

remplace

```auto

```

par

`exit 1
fi
`

---

<div class="post-metadata">

**Author:** ![vohu](https://www.debian-fr.org/user_avatar/www.debian-fr.org/vohu/32/4108_2.png) [@vohu](https://www.debian-fr.org/u/vohu)\
**Post date:** [Février 20, 2016, 5:24 UTC](https://www.debian-fr.org/t/test-fichier-termine/13110/6 "2016-02-20T17:24:10Z")

</div>

[quote]vohu@vohu-desktop:~/Desktop/test$ ls | xargs -t -i{} ./net.sh {}  
./net.sh bx1.png  
bx1.png  
bx1  
png  
./net.sh: line 14: syntax error near unexpected token `fi' ./net.sh: line 14:`fi’  
[/quote]

:s

---

<div class="post-metadata">

**Author:** ![fran.b](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/f/d78d45/32.png) [@fran.b](https://www.debian-fr.org/u/fran.b)\
**Post date:** [Février 20, 2016, 5:24 UTC](https://www.debian-fr.org/t/test-fichier-termine/13110/7 "2016-02-20T17:24:10Z")

</div>

`if [$nomfich = $0] ; then
exit 1
fi`

man test

---

<div class="post-metadata">

**Author:** ![ripat](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/r/bc79bd/32.png) [@ripat](https://www.debian-fr.org/u/ripat)\
**Post date:** [Février 20, 2016, 5:24 UTC](https://www.debian-fr.org/t/test-fichier-termine/13110/8 "2016-02-20T17:24:11Z")

</div>

Une alternative à ton script:

[code]#!/bin/bash

for fichier in $(ls _); do  
# suppression de l’extension  
base=${fichier%._}

```
# si les deux types existent, ne rien faire. Sinon supprimer.
if [-f "$base.dat"] && [-f "$base.png"]; then
    echo "Ne pas supprimer $fichier"
else
    echo "Supprimer $fichier"
fi

```

done  
[/code]  
A exécuter dans le répertoire cible. Sinon jouer avec les paramètres passés au scripts et $1.

---

<div class="post-metadata">

**Author:** ![vohu](https://www.debian-fr.org/user_avatar/www.debian-fr.org/vohu/32/4108_2.png) [@vohu](https://www.debian-fr.org/u/vohu)\
**Post date:** [Février 20, 2016, 5:24 UTC](https://www.debian-fr.org/t/test-fichier-termine/13110/9 "2016-02-20T17:24:12Z")

</div>

rholala, ben c bien mieu 😛

si non j’en étais la… ca avance doucement

[code]#!/bin/bash  
nomfich=$1  
nom=${nomfich%._}  
extention=${nomfich##_.}

echo "Affiche les variables"  
echo $nomfich  
echo $nom  
echo $extention

#arret si fichier du script  
#if [$nomfich -eq $0]; then  
#exit  
#fi

echo “entre dans CASE”

# Case select…

case $extention in  
"dat")  
# si fichier dat sans fichier png  
echo “dat"  
if test -s “./”$nom”.png"; then  
echo "ne fait rien"  
else  
echo "suppression du fichier “$nomfich  
#rm $nomfich  
fi  
;;  
“png”)  
# si fichier png sans fichier dat  
echo “arret"  
if test -s “./”$nom”.dat”; then  
echo "ne fait rien"  
else  
echo "suppression du fichier "$nomfich  
#rm $nomfich  
fi  
;;  
\*)  
echo "erreur sur le fichier "$nomfich  
esac  
exit  
[/code]

---

<div class="post-metadata">

**Author:** ![ripat](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/r/bc79bd/32.png) [@ripat](https://www.debian-fr.org/u/ripat)\
**Post date:** [Février 20, 2016, 5:24 UTC](https://www.debian-fr.org/t/test-fichier-termine/13110/10 "2016-02-20T17:24:26Z")

</div>

Et? Encore un problème? A première vue ton script m’a l’air correct sur le plan logique et syntaxique. J’ai quelques doutes sur ton test -s. Pourquoi pas test -f?

---

<div class="post-metadata">

**Author:** ![vohu](https://www.debian-fr.org/user_avatar/www.debian-fr.org/vohu/32/4108_2.png) [@vohu](https://www.debian-fr.org/u/vohu)\
**Post date:** [Février 20, 2016, 5:24 UTC](https://www.debian-fr.org/t/test-fichier-termine/13110/11 "2016-02-20T17:24:29Z")

</div>

j’ai modifier, par -f, j’avais mis s, car j’avais vu que cela verifiait que mon fichier n’était pas vide… mais ca ne fonctionnait pas…

Merci beaucoup pour votre aide 🙂

---

<div class="post-metadata">

**Author:** ![vohu](https://www.debian-fr.org/user_avatar/www.debian-fr.org/vohu/32/4108_2.png) [@vohu](https://www.debian-fr.org/u/vohu)\
**Post date:** [Février 20, 2016, 5:24 UTC](https://www.debian-fr.org/t/test-fichier-termine/13110/12 "2016-02-20T17:24:29Z")

</div>

voila le script fini 🙂

$ ls | xargs -t -i{} ./cleancache.sh {}

[code]#!/bin/bash  
#[cleancache.sh](http://cleancache.sh)  
nomfich=$1  
nom=${nomfich%._}  
extention=${nomfich##_.}

echo "Affiche les variables"  
echo $nomfich  
echo $nom  
echo $extention

#arret si fichier du script  
#if [$nomfich -eq $0]; then  
#exit  
#fi

mkdir ~/orphelins

echo “entre dans CASE”

# Case select…

case $extention in  
"dat")  
# si fichier dat sans fichier png  
echo "dat"  
if test -f “./$nom.png”; then  
echo "ne fait rien"  
else  
echo "suppression du fichier "$nomfich  
mv $nomfich ~/orphelins/  
echo $nomfich \>\> ~/Desktop/suppression.txt  
fi  
;;  
“png”)  
# si fichier png sans fichier dat  
echo "png"  
if test -f “./$nom.dat”; then  
echo "ne fait rien"  
else  
echo "suppression du fichier “$nomfich  
mv $nomfich ~/orphelins/  
echo $nomfich \>\> ~/Desktop/suppression.txt  
fi  
;;  
\*)  
echo $nomfich” n’est pas un fichier dat ou png  
esac  
exit[/code]
