#1 Le 19/11/2018, à 11:05
- xenonan
[Résolu]Script Bash modification fichier txt
Bonjour tout le monde !
voila je suis en train de faire un petit script mais j'aurai besoins de votre aide
voici le code en question :
#!/bin/bash
# Préparation du fichier images
sed -i -e 's/\r//' Images.txt
sed -i -e 's/,/|/g' Images.txt
sed -i -e 's/Images$/image_1|image_2|image_3|image_4|image_5|image_6|image_7|image_8|image_9|image_10|image_11|image_12|image_13|image_14|image_15|image_16/g' Images.txt
sed -i -e 's/\([0-9][0-9][0-9][0-9][0-9][0-9][0-9]\)|\([^|]*\)|\([^|]*\)|\([^|]*\)|\([^|]*\)|\([^|]*\)|\([^|]*\)|\([^|]*\)|\([^|]*\)|\([^|]*\)|\([^|]*\)|\([^|]*\)|\([^|]*\)|\([^|]*\)|\([^|]*\)|\([^|]*\)|\([^|]*\)$/\1|..\/base-images\/\2|..\/base-images\/\3|..\/base-images\/\4|..\/base-images\/\5|..\/base-images\/\6|..\/base-images\/\7|..\/base-images\/\8|..\/base-images\/\9|..\/base-images\/\10|..\/base-images\/\11|..\/base-images\/\12|..\/base-images\/\13|..\/base-images\/\14|..\/base-images\/\15|..\/base-images\/\16|..\/base-images\/\17/g' Images.txt
Le fichier de base Base Image.txt
4526010|4526010_1.jpg|4526011_1.jpg|4526020_1.jpg|4526055_1.jpg|4526070_1.jpg|4526080_1.jpg|4526107_1.jpg|4526108_1.jpg|4526110_1.jpg|4526112_1.jpg|4526121_1.jpg|4526122_1.jpg|4526123_1.jpg|4526124_1.jpg|4526125_1.jpg|4526183_1.jpg
le résultat après exécution de mon script:
4526010|../base-images/4526010_1.jpg|../base-images/4526011_1.jpg|../base-images/4526020_1.jpg|../base-images/4526055_1.jpg|../base-images/4526070_1.jpg|../base-images/4526080_1.jpg|../base-images/4526107_1.jpg|../base-images/4526108_1.jpg|../base-images/45260100|../base-images/45260101|../base-images/45260102|../base-images/45260103|../base-images/45260104|../base-images/45260105|../base-images/45260106|../base-images/45260107
je ne sais pas pourquoi a partir de l'image 8 il récupere pas le bon fichier.
Voila merci pour votre aide ^^
Dernière modification par xenonan (Le 22/11/2018, à 15:22)
Hors ligne
#2 Le 19/11/2018, à 11:27
- pingouinux
Re : [Résolu]Script Bash modification fichier txt
Bonjour,
Quel résultat veux-tu obtenir ?
Hors ligne
#3 Le 19/11/2018, à 11:32
- xenonan
Re : [Résolu]Script Bash modification fichier txt
Voila le résultat que je souhaiterai obtenir
4526010|../base-images/4526010_1.jpg|../base-images/4526011_1.jpg|../base-images/4526020_1.jpg|../base-images/4526055_1.jpg|../base-images/4526070_1.jpg|../base-images/4526080_1.jpg|../base-images/4526107_1.jpg|../base-images/4526108_1.jpg|../base-images/4526110_1.jpg|../base-images/4526112_1.jpg|../base-images/4526121_1.jpg|../base-images/4526122_1.jpg|../base-images/4526123_1.jpg|../base-images/4526124_1.jpg|../base-images/4526125_1.jpg|../base-images/4526183_1.jpg
Hors ligne
#4 Le 19/11/2018, à 12:22
- Hizoka
Re : [Résolu]Script Bash modification fichier txt
Salut, c'est loin d'être lisible tout ça.
Peux tu nous montrer une partie du fichier de base (avant tes sed) ?
car ce que tu nous montre a déjà été modifié par sed (ligne 1 et 2 je présume)
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#5 Le 19/11/2018, à 12:35
- xenonan
Re : [Résolu]Script Bash modification fichier txt
effectivement ce que je vous ai montré a déjà été modifié par sed
Voila le fichier de base
Reference|Images
4526010|4526010_1.jpg,4526011_1.jpg,4526020_1.jpg,4526055_1.jpg,4526070_1.jpg,4526080_1.jpg,4526107_1.jpg,4526108_1.jpg,4526110_1.jpg,4526112_1.jpg,4526121_1.jpg,4526122_1.jpg,4526123_1.jpg,4526124_1.jpg,4526125_1.jpg,4526183_1.jpg
le script que je souhaiterai faire c'est de modifier le chemin des fichiers par exemple le fichiers 4526010_1.jpg je veux que ca devient ../base-images/4526010_1.jpg
Dernière modification par xenonan (Le 19/11/2018, à 12:45)
Hors ligne
#6 Le 19/11/2018, à 12:48
- pingouinux
Re : [Résolu]Script Bash modification fichier txt
Pour les étapes 2 et 4 :
sed -nr 's#[,|]([[0-9_]+.jpg)#|../base-images/\1#gp' fichier
Dernière modification par pingouinux (Le 19/11/2018, à 13:11)
Hors ligne
#7 Le 19/11/2018, à 16:24
- Hizoka
Re : [Résolu]Script Bash modification fichier txt
et si on fait tout bêtement :
sed "1d; s@[|,]@|../base-images/@g"
4526010|../base-images/4526010_1.jpg|../base-images/4526011_1.jpg|../base-images/4526020_1.jpg|../base-images/4526055_1.jpg|../base-images/4526070_1.jpg|../base-images/4526080_1.jpg|../base-images/4526107_1.jpg|../base-images/4526108_1.jpg|../base-images/4526110_1.jpg|../base-images/4526112_1.jpg|../base-images/4526121_1.jpg|../base-images/4526122_1.jpg|../base-images/4526123_1.jpg|../base-images/4526124_1.jpg|../base-images/4526125_1.jpg|../base-images/4526183_1.jpg
Ca le fait non ?
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#8 Le 19/11/2018, à 17:25
- pingouinux
Re : [Résolu]Script Bash modification fichier txt
Tu as raison, Hizoka, mais si xenonan garde ou modifie la première ligne, il ne faut pas la modifier à nouveau.
Hors ligne
#9 Le 19/11/2018, à 17:47
- Hizoka
Re : [Résolu]Script Bash modification fichier txt
Donc, si on veut virer simplement la 1ere ligne :
sed "1d; s@[|,]@|../base-images/@g"
et si on ne veut pas la supprimer
sed "s@[|,]@|../base-images/@g"
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#10 Le 19/11/2018, à 18:03
- pingouinux
Re : [Résolu]Script Bash modification fichier txt
Hizoka, ta seconde commande en #9 modifie aussi la première ligne.
Pour l'éviter :
sed '1!s@[|,]@|../base-images/@g' fichier
Hors ligne
#11 Le 19/11/2018, à 18:19
- Hizoka
Re : [Résolu]Script Bash modification fichier txt
Ah ouais, bien vu
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#12 Le 20/11/2018, à 00:00
- nany
Re : [Résolu]Script Bash modification fichier txt
Bonjour,
J’ai traité la première ligne et repris votre solution pour la deuxième ligne pour refaire le script :
#!/bin/bash
# Préparation du fichier images
f="Images.txt"
n=$(grep -o jpg "$f" | wc -l)
l=""
p="|Images"
c="../base-images/"
for (( i=1 ; i <= $n ; i++ ))
do
l="$l|image_$i"
done
sed -i "s#$p#$l# ; 1!s#[|,]#|$c#g" "$f"
exit 0
Hors ligne
#13 Le 20/11/2018, à 17:55
- Hizoka
Re : [Résolu]Script Bash modification fichier txt
Si c'est good, ajoute [Résolu] dans ton titre.
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#14 Le 22/11/2018, à 15:20
- xenonan
Re : [Résolu]Script Bash modification fichier txt
Merci les gars: :):)
Hors ligne