#1 Le 26/07/2021, à 16:06
- JujuLand
[Résolu] Erreur sed >> Scripts exif2date et colors
Bonjour,
J'ai un remplacement de chaîne à faire dans un fichier, voici comment je procède:
previous=$(cat $HOME/.wine/user.reg | grep 'cwd')
echo $previous => "cwd"="Z:\\home\\alain\\Bureau\\transfert\\Images\\Divers"
now=$(pwd|sed 's|/|\\\\|g')
echo $now => \\home\\alain\\Bureau\\transfert\\Images\\Blagues
new='"cwd"="Z:'$now'"'
echo $new => "cwd"="Z:\\home\\alain\\Bureau\\transfert\\Images\\Blagues"
sed -i -e 's|${previous}|${new}' $HOME/.wine/user.reg
=> sed: -e expression n°1, caractère 20: commande `s' inachevée
Où est-ce que je merde ?
Merci
A+
Dernière modification par JujuLand (Le 11/08/2021, à 09:03)
Xubuntu 16.04 > Dell DM061 (2007) + Dell Inspiron 531 (2008)
Xubuntu 16.04 > Asus X51L (2009) + MSI GX723 (2009)
Xubuntu 22.04 > HP 15BA048NF (2018)
Hors ligne
#2 Le 26/07/2021, à 16:17
- JujuLand
Re : [Résolu] Erreur sed >> Scripts exif2date et colors
Bon, je viens de trouver qu'il manquait la portée du sed, et avec |g', plus d'erreur, mais pas re remplacement dans le fichier ...
Le meilleure solution serait de ne pas utiliser 'Exif Pilote' (pour Windows) et d'utiliser exiv2 par exemple (ou une commande en mode terminal), mais je ne comprend pas trop la commande exiv2, et de plus, il ne semble pas possible de créer un exif pour une image qui n'en dispose pas encore, alors que c'est possible avec Exif Pilot ...
Une idée ?
Xubuntu 16.04 > Dell DM061 (2007) + Dell Inspiron 531 (2008)
Xubuntu 16.04 > Asus X51L (2009) + MSI GX723 (2009)
Xubuntu 22.04 > HP 15BA048NF (2018)
Hors ligne
#3 Le 26/07/2021, à 16:50
- MicP
Re : [Résolu] Erreur sed >> Scripts exif2date et colors
Bonjour
Je ne sais pas du tout ce que contient le fichier $HOME/.wine/user.reg avant la modification
ni ce que tu voudrais qu'il contienne une fois que la modification par la commande sed sera faite,
ni l'utilité des commandes echo
ni le rapport entre ces lignes de commande(s) et l'extrait suivant de ton message #2 :
… Le meilleure solution serait de ne pas utiliser 'Exif Pilote' (pour Windows) et d'utiliser exiv2 par exemple (ou une commande en mode terminal), mais je ne comprend pas trop la commande exiv2, et de plus, il ne semble pas possible de créer un exif pour une image qui n'en dispose pas encore, alors que c'est possible avec Exif Pilot ...
=======
En attendant, je te propose les quelques reformulations suivantes des lignes de de commande(s) de ton script
(en espérant qu'il s'agit bien d'un script qui sera exécuté par l'interpréteur de commandes bash) :
previous=$(cat $HOME/.wine/user.reg | grep 'cwd')
à remplacer par :
previous="$(grep cwd $HOME/.wine/user.reg)"
echo $previous => "cwd"="Z:\\home\\alain\\Bureau\\transfert\\Images\\Divers"
à remplacer par :
echo "$previous => cwd=Z:\\home\\alain\\Bureau\\transfert\\Images\\Divers"
now=$(pwd|sed 's|/|\\\\|g')
à remplacer par :
now="${PWD//\//\\\\}"
echo $now => \\home\\alain\\Bureau\\transfert\\Images\\Blagues
à remplacer par :
echo "$now => \\home\\alain\\Bureau\\transfert\\Images\\Blagues"
new='"cwd"="Z:'$now'"'
à remplacer par :
new="cwd=Z:$now"
echo $new => "cwd"="Z:\\home\\alain\\Bureau\\transfert\\Images\\Blagues"
à remplacer par :
echo "$new => cwd=Z:\\home\\alain\\Bureau\\transfert\\Images\\Blagues"
sed -i -e 's|${previous}|${new}|g' $HOME/.wine/user.reg
à remplacer par :
sed -i "s|${previous}|${new}|g" $HOME/.wine/user.reg
ou bien, si tu veux créer une sauvegarde du fichier à modifier, au cas où tu ne serait pas sûr que ça fonctionne du premier coup :
sed -i.sauv "s|${previous}|${new}|g" $HOME/.wine/user.reg
ce qui va créer, avant modification, une copie de sauvegarde du fichier $HOME/.wine/user.reg qui sera nommée $HOME/.wine/user.reg.sauv
et qui fera en même temps la modification dans le fichier $HOME/.wine/user.reg.sauv
Ce qui fait que tu pourras toujours revenir "en arrière" en supprimant le fichier modifié et en renommant $HOME/.wine/user.reg.sauv en $HOME/.wine/user.reg
Dernière modification par MicP (Le 26/07/2021, à 18:40)
Hors ligne
#4 Le 26/07/2021, à 18:36
- JujuLand
Re : [Résolu] Erreur sed >> Scripts exif2date et colors
Je ne sais pas du tout ce que contient le fichier $HOME/.wine/user.reg avant la modification
C'est le fichier reg de wine
Il contient notamment ce qui est dans la variable previous
"cwd"="Z:\\home\\alain\\Bureau\\transfert\\Images\\Divers"
avec les doubles-quotes
et donc now :
"cwd"="Z:\\home\\alain\\Bureau\\transfert\\Images\\Blagues"
echo "$previous => cwd=Z:\\home\\alain\\Bureau\\transfert\\Images\\Divers"
En fait, j'ai simplement fait figuré le retour de la commande echo $previous sur la même ligne dans mon post et donc ma commande est tout simplement : echo $previous
Idem pour les autres lignes où figurent les => ...
new="cwd=Z:$now"
Comme dit us haut, les doubles quotes sont dans le fichier user.rsg, et il est donc nécessaire de les avoir, d'où la quote et la double quote.
Comme la chaîne à modifier concerne le chemin, en ne remplaçant pas la ligne complête, mais juste le chemin, ça pourrait le faire, car je me demande si ce n'est pas à cause des quotes et doubles quotes que ça coince ...
A+
Xubuntu 16.04 > Dell DM061 (2007) + Dell Inspiron 531 (2008)
Xubuntu 16.04 > Asus X51L (2009) + MSI GX723 (2009)
Xubuntu 22.04 > HP 15BA048NF (2018)
Hors ligne
#5 Le 26/07/2021, à 19:06
- MicP
Re : [Résolu] Erreur sed >> Scripts exif2date et colors
…
…Il contient notamment ce qui est dans la variable previous
"cwd"="Z:\\home\\alain\\Bureau\\transfert\\Images\\Divers"
…
Est-ce qu'il contient bien la ligne qui est ci-dessus ?
ou alors est-ce qu'il contient :
"cwd"="Z:\home\alain\Bureau\transfert\Images\Divers"
=======
Est-ce tu es sûr qu'il n'y a aucune autre ligne dans le fichier $HOME/.wine/user.reg qui pourrait un jour contenir,
dans un mot de la ligne, la suite consécutives des trois lettres suivantes : cwd
(comme par exemple dans un nom de fichier ou de répertoire, ou dans une ligne commentée) ?
Sinon, ce seront toutes les lignes du fichier $HOME/.wine/user.reg
dans lesquelles sera trouvé ce motif de recherche qui seront remplacées par une ligne contenant:
"cwd"="Z:\\home\\alain\\Bureau\\transfert\\Images\\Blagues"
=======
Ça serait bien d'avoir un copié/collé du contenu intégral du fichier avant modification
et une autre copie du fichier après modification,
comme ça, on pourrait faire directement des essais.
Dernière modification par MicP (Le 26/07/2021, à 19:33)
Hors ligne
#6 Le 26/07/2021, à 20:01
- JujuLand
Re : [Résolu] Erreur sed >> Scripts exif2date et colors
Voici ce qu'il contient :
[Software\\Two Pilots\\Exif Pilot] 1627319764
"cwd"="Z:\\home\\alain\\Bureau\\transfert\\Images\\Divers"
Oui, c'est la seule occurence de "cwd"
Car j'utilise très peu de programmes windows avec wine, je préfère rester en linux ...
ni le rapport entre ces lignes de commande(s) et l'extrait suivant de ton message #2 :
JujuLand a écrit :… Le meilleure solution serait de ne pas utiliser 'Exif Pilote' (pour Windows) et d'utiliser exiv2 par exemple (ou une commande en mode terminal), mais je ne comprend pas trop la commande exiv2, et de plus, il ne semble pas possible de créer un exif pour une image qui n'en dispose pas encore, alors que c'est possible avec Exif Pilot ...
J'utilise 'Exif Pilot' car je n'ai pas trouvé d'outils linux qui permette de créer un exif pour une image qui n'en n'a pas, ce que permet ce programme windows. Si je veux tripatouiller user.reg, c'est pour que le programme ouvre sur le bon répertoire. Le répertoire est mémorisé après utilisation dans le registre utilisateur, et c'est un peu génant.
Donc, si quelqu'un connait un outil linux qui fasse ça, et qui en plus serait en mode ligne de commande, je serai ravi ... Je n'ai pas trouvé comment faire avec exiv2, par ailleurs, son utilisation me parait compliqué ...
A+
Dernière modification par JujuLand (Le 26/07/2021, à 20:12)
Xubuntu 16.04 > Dell DM061 (2007) + Dell Inspiron 531 (2008)
Xubuntu 16.04 > Asus X51L (2009) + MSI GX723 (2009)
Xubuntu 22.04 > HP 15BA048NF (2018)
Hors ligne
#7 Le 26/07/2021, à 20:10
- pingouinux
Re : [Résolu] Erreur sed >> Scripts exif2date et colors
Bonsoir,
Est-ce que ceci pourrait convenir ?
sed '/"cwd"/s/:\\\\.*/'":${PWD//\//\\\\\\\\}"'"/' "$HOME/.wine/user.reg"
Ajouter -i si c'est bon.
Édité : Correction
Dernière modification par pingouinux (Le 26/07/2021, à 20:14)
Hors ligne
#8 Le 26/07/2021, à 20:45
- MicP
Re : [Résolu] Erreur sed >> Scripts exif2date et colors
Oui,
et pour éviter que la chaîne de caractères :
"cwd"
puisse être trouvée ailleurs qu'en début de ligne
et lui faire rechercher, en début de ligne, le motif encore plus strict :
"cwd"="
qui sera suivit de n'importe quel caractère
et dont la ligne se termine par un caractère apostrophe :
sed '/^"cwd"=".*"$/s/:\\\\.*/'":${PWD//\//\\\\\\\\}"'"/' "$HOME/.wine/user.reg"
=======
… je n'ai pas trouvé d'outils linux qui permette de créer un exif pour une image qui n'en n'a pas, …
…un outil linux qui fasse ça, et qui en plus serait en mode ligne de commande…
Pour ajouter des métadonnées à un fichier image qui n'en a pas encore,
il y a la commande exiftool qui est dans le paquetage libimage-exiftool-perl
sudo apt install libimage-exiftool-perl
Une fois le paquetage installé, je peux ajouter des metadata dans mon fichier image qui n'en avait pas encore :
exiftool -Comment="Mon commentaire ajouté dans des nouvelles données exif" ~/Images/MonImageÀcommenter.png
Voir :How to add metadata to digital pictures from the command line
Dernière modification par MicP (Le 27/07/2021, à 00:58)
Hors ligne
#9 Le 27/07/2021, à 12:21
- JujuLand
Re : [Résolu] Erreur sed >> Scripts exif2date et colors
Bon, ta ligne de commande fonctionne nickel :
# MISE A JOUR DE "cwd" DANS user.reg
sed '/^"cwd"=".*"$/s/:\\\\.*/'":${PWD//\//\\\\\\\\}"'"/' "$HOME/.wine/user.reg" > maj
cp maj ~/.wine/user.reg
rm maj
Maintenant, j'avais essayé exiftool, mais je ne voyais pas la date ... en fait il la met dans XMP, avec le nom ModifyDate et pas dand DateTime:
alain@Gramps-JujuLand2:~/Bureau/transfert/Images/Blagues$ exiftool -DateTime="2017-09-21 18:10:05" IMG_1360.JPG
1 image files updated
XMP Exif
xmp:ModifyDate 2017-09-21T18:10:05
Mais j'ai eu du mal à lire le paramètre ensuite:
date=$(identify -format "%[XMP:ModifyDate]" "$fichier"| cut -f1,2,3,4,5| awk -F ":" '{print $1"-"$2"-"$3":"$4":"$5}')
echo date=[$date]
=> date=[]
J'ai trouvé la date en lançant :
identify -verbose IMG_1367.JPG
Image: IMG_1367.JPG
Format: JPEG (Joint Photographic Experts Group JFIF format)
Mime type: image/jpeg
...
Properties:
date:create: 2021-07-27T11:46:42+02:00
date:modify: 2021-07-27T11:46:42+02:00
...
tiff:DateTime: 2017-09-21T18:10:05
Profiles:
...
A+
Xubuntu 16.04 > Dell DM061 (2007) + Dell Inspiron 531 (2008)
Xubuntu 16.04 > Asus X51L (2009) + MSI GX723 (2009)
Xubuntu 22.04 > HP 15BA048NF (2018)
Hors ligne
#10 Le 27/07/2021, à 13:30
- erresse
Re : [Résolu] Erreur sed >> Scripts exif2date et colors
J'utilise 'Exif Pilot' car je n'ai pas trouvé d'outils linux qui permette de créer un exif pour une image qui n'en n'a pas, ce que permet ce programme windows. Si je veux tripatouiller user.reg, c'est pour que le programme ouvre sur le bon répertoire. Le répertoire est mémorisé après utilisation dans le registre utilisateur, et c'est un peu génant.
Donc, si quelqu'un connait un outil linux qui fasse ça, et qui en plus serait en mode ligne de commande, je serai ravi ... Je n'ai pas trouvé comment faire avec exiv2, par ailleurs, son utilisation me parait compliqué ...
Salut,
Utilise "jhead" en ligne de commande qui fait ça (et bien d'autres choses) très bien...
Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois le problème solutionné, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.
Hors ligne
#11 Le 27/07/2021, à 19:58
- JujuLand
Re : [Résolu] Erreur sed >> Scripts exif2date et colors
Extrait du man :
There is also no way to create minimal exif headers
Donc pas utilisable pour des images sans entête exif. A voir cette option -mkexit que je viens de trouver.
Pour le reste, il semble pas mal et permet d'éviter l'utilisation de la commande touch, mais il faut voir s'il est capable de trouver la date dans tous les cas :
- exif:DateTime
- tiff:DateTime
- exif:DateCreation
A+
Dernière modification par JujuLand (Le 27/07/2021, à 20:00)
Xubuntu 16.04 > Dell DM061 (2007) + Dell Inspiron 531 (2008)
Xubuntu 16.04 > Asus X51L (2009) + MSI GX723 (2009)
Xubuntu 22.04 > HP 15BA048NF (2018)
Hors ligne
#12 Le 28/07/2021, à 09:11
- MicP
Re : [Résolu] Erreur sed >> Scripts exif2date et colors
Bonjour
Extrait du man :
There is also no way to create minimal exif headers
Donc pas utilisable pour des images sans entête exif. A voir cette option -mkexit que je viens de trouver.
…
Je suppose que tu cites un extrait des pages man mais de quelle commande s'agit-il ?
=======
Pourquoi ne pas utiliser la commande exiftool pour créer des métadonnées exif dans un fichier qui n'en aurait pas ?
Hors ligne
#13 Le 28/07/2021, à 17:04
- JujuLand
Re : [Résolu] Erreur sed >> Scripts exif2date et colors
Effectivement, exiftool permet de créer de metadonnees, et je viens de faire l'essai et ça crée bien une structure exif (??) alors qu'elle n'existe pas déjà ...
Elle crée une metadonnée xmp:ModifyDate au format légèrement différent de ce qu'on peut trouver dans les exifs
A+
Xubuntu 16.04 > Dell DM061 (2007) + Dell Inspiron 531 (2008)
Xubuntu 16.04 > Asus X51L (2009) + MSI GX723 (2009)
Xubuntu 22.04 > HP 15BA048NF (2018)
Hors ligne
#14 Le 28/07/2021, à 20:48
- MicP
Re : [Résolu] Erreur sed >> Scripts exif2date et colors
Bon, ta ligne de commande fonctionne nickel :
# MISE A JOUR DE "cwd" DANS user.reg sed '/^"cwd"=".*"$/s/:\\\\.*/'":${PWD//\//\\\\\\\\}"'"/' "$HOME/.wine/user.reg" > maj cp maj ~/.wine/user.reg rm maj
…
Tu peux remplacer ces trois lignes de commande
par :
# MISE A JOUR DE "cwd" DANS user.reg
sed -i '/^"cwd"=".*"$/s/:\\\\.*/'":${PWD//\//\\\\\\\\}"'"/' "$HOME/.wine/user.reg"
=======
…Elle crée une metadonnée xmp:ModifyDate au format légèrement différent de ce qu'on peut trouver dans les exifs
La page Wikipedia est assez bien faite à ce sujet : Wikipedia -> Exchangeable image file format
et comme souvent, la version en anglais est plus détaillée : Wikipedia -> EXIF
Et bien sur il faut pas hésiter à investir un peu de temps
en lisant la page man de la commande exiftool
man exiftool
Dernière modification par MicP (Le 28/07/2021, à 21:03)
Hors ligne
#15 Le 31/07/2021, à 22:14
- JujuLand
Re : [Résolu] Erreur sed >> Scripts exif2date et colors
Bon, j'ai fait quelques essais, et s'ils sont dans l'ensemble assez concluants, j'ai toutefois, j'ai un soucis avec les fichiers png.
Voici le script que je suis en train de faire pour mettre à jour les dates de fichier depuis les dates exif:
#!/bin/bash
version=1.10
datvers=2021-07-31
if [ "x${gYel}" == "x" ];then
export gRed='\033[1;31m'
export gGre='\033[1;32m'
export gYel='\033[1;33m'
export gBlu='\033[1;34m'
export gMag='\033[1;35m'
export gCya='\033[1;36m'
export gWhi='\033[1;37m'
export noColor='\033[0m'
export mup='\033[0A'
fi
if [ "$1" == "-v" ];then
echo -e "ii\texif2date\t$version\t$datvers"
exit
elif [ "$1" == "-h" ];then
clear
echo " "
echo -e "${gYel} exif2date ${gGre}v${version} ${gMag}${datvers}"
echo ""
echo -e "${gGre}1)${gYel} Remplacer la date du fichier par la date exif"
echo -e "${gGre}2)${gMag} Remplacer la date exif 0000-00-00 00:00:00 par une date correcte"
echo -e " ${fMag}- soit par une date à saisir puis remplacer la date fichier"
echo -e " - soit par la date fichier"
echo -e "${gGre}3)${gGre} Créer la date exif"
echo -e " ${fGre}- soit une date à saisir puis remplacer la date fichier"
echo -e " - soit la date fichier${noColor}"
echo " "
exit
elif [ "$1" == "-w" ];then
export pilot="Oui"
fi
echo -e "${gYel}Mise à jour des dates des images de ${gGre}$(pwd)${noColor}"
echo ""
echo "Mise à jour des dates des images de $(pwd)" > tridate.log
echo "" >>tridate.log
# This script uses 'Exif Pilot' for Windows to add or correct missing or bad dates
# Just set the variable containing the Exif Pilot program location in the concerned lines (62, 85)
# MISE A JOUR DE "cwd" DANS user.reg
if [ "$pilot" == "Oui" ];then
if [ $(locate -b ExifPilot.exe|wc -l) == 1 ];then
sed -i '/^"cwd"=".*"$/s/:\\\\.*/'":${PWD//\//\\\\\\\\}"'"/' "$HOME/.wine/user.reg"
else
echo -e "${gRed}Exif Pilot n'est pas installé ..."
echo -e "${gYel}Téléchargez-le: ${gGre}https://www.two-pilots.com/colorpilot.com/load/exif.exe"
echo -e "${gMag}... et installez-le !!!${noColor}"
echo " "
exit
fi
fi
cles=("EXIF:DateTimeOriginal" "EXIF:DateTime" "TIFF:DateCreation" "tiff:DateTime")
exts=("PNG" "png" "JPG" "jpg" "jpeg")
for ext in ${exts[@]}; do
for fichier in *.${ext}; do
if [ "${fichier}" != "*.${ext}" ]; then
for cle in ${cles[@]}; do
date=$(identify -format "%[${cle}]" "${fichier}"| cut -f1,2,3,4,5| awk -F ":" '{print $1"-"$2"-"$3":"$4":"$5}')
date=$(echo ${date}|sed 's|T| |1')
if [ "x${date}" != "x" ]; then
case ${date} in
"0000-00-00 00:00:00")
if [ "$pilot" == "Oui" ];then
env WINEPREFIX="$HOME/.wine" wine E:\\Program\ Files\\Exif\ Pilot\\ExifPilot.exe 2>/dev/null
date=$(identify -format "%[EXIF:DateTime]" "${fichier}"| cut -f1,2,3,4,5| awk -F ":" '{print $1"-"$2"-"$3":"$4":"$5}')
else
date=$(stat "${fichier}"|grep Modif| cut -f1,2,3|awk -F " " '{print $2" "$3}'|cut -f1,2|awk -F "." '{print $1}')
echo -e "${fichier} : "0000-00-00 00:00:00" , ${gMag}${date}${gRed}"
echo -e "Modifier ${gGre}o${noColor}/${gYel}N${gGre} (non par défaut)${noColor}"
read what
if [[ "${what}" == "O" || "${what}" == "o" ]]; then
read date
exiftool -DateTime="${date}" "${fichier}"
fi
fi
touch -d "${date}" "${fichier}"
echo -e "${mup}${mup}${gYel}${fichier} ${gMag}=> ${gGre}${date}${noColor}" ;;
*)
fdate=$(stat "${fichier}"|grep Modif| cut -f1,2,3|awk -F " " '{print $2" "$3}'|cut -f1,2|awk -F "." '{print $1}')
touch -d "${date}" "${fichier}"
if [ "${fdate}" == "${date}" ]; then
echo -e "${gYel}${fichier} ${gMag}== ${gGre}${date}${noColor}"
else
echo -e "${gYel}${fichier} ${gMag}>>cat ${gGre}${date}${noColor}"
fi;;
esac
break
fi
done
if [ "x${date}" == "x" ]; then
fdate=$(stat "${fichier}"|grep Modif| cut -f1,2,3|awk -F " " '{print $2" "$3}'|cut -f1,2|awk -F "." '{print $1}')
echo -e "${fichier} : pas de date , ${gMag}${fdate}${gRed}"
echo -e "Modifier ${gGre}o${noColor}/${gYel}N${gGre} (non par défaut)${noColor}"
read what
if [[ "${what}" == "O" || "${what}" == "o" ]]; then
if [ "$pilot" == "Oui" ];then
echo -e ${mup}${gWhi}Tapez entrée ...${noColor}
env WINEPREFIX="$HOME/.wine" wine E:\\Program\ Files\\Exif\ Pilot\\ExifPilot.exe 2>/dev/null
date=$(identify -format "%[EXIF:DateTime]" "${fichier}"| cut -f1,2,3,4,5| awk -F ":" '{print $1"-"$2"-"$3":"$4":"$5}')
else
echo -e "${mup}${gWhi}Entrez la date${noColor}"
read date
exiftool -DateTime="${date}" "${fichier}" 1>/dev/null
fi
touch -d "${date}" "${fichier}" 2>/dev/null
echo -e "${gYel}${fichier} ${gMag}=> ${gGre}${date}${noColor}"
else
touch -d "${fdate}" "${fichier}" 2>/dev/null
echo -e "${mup}${mup}${gYel}${fichier} ${gMag}=> ${gGre}${fdate}${noColor}"
fi
fi
fi
done
done
Si je suis capable de créer la date exif avec exiftool, je ne suis pas capable de récupérer la date créée.
Je la crée avec la paramètre DateTime (ligne 111)
Avec eog, la propriété retournée est xmp:ModifyDate, valeur que je mettais dans le tableau clés (ligne 59) => pas trouvée
J'ai essayé avec d'autres valeurs et notamment avec tiff:Datetime, nom trouvé en faisant un cat de test.png (après création avec exiftool et DateTime).
Si je visualise les propriétés avec identify, j'ai ça:
alain@Gramps-JujuLand2:~/Bureau/test exif$ identify -verbose test.png
Image: test.png
Format: PNG (Portable Network Graphics)
Mime type: image/png
Class: DirectClass
Geometry: 212x248+0+0
Resolution: 28.35x28.35
Print size: 7.47795x8.7478
Units: PixelsPerCentimeter
Type: TrueColor
Endianess: Undefined
Colorspace: sRGB
Depth: 8-bit
Channel depth:
red: 8-bit
green: 8-bit
blue: 8-bit
Channel statistics:
Pixels: 52576
Red:
min: 9 (0.0352941)
max: 219 (0.858824)
mean: 128.117 (0.502421)
standard deviation: 51.6104 (0.202394)
kurtosis: -1.18289
skewness: -0.293685
Green:
min: 0 (0)
max: 203 (0.796078)
mean: 89.7708 (0.352042)
standard deviation: 65.133 (0.255424)
kurtosis: -1.21348
skewness: 0.615829
Blue:
min: 0 (0)
max: 205 (0.803922)
mean: 93.1007 (0.365101)
standard deviation: 63.8618 (0.250438)
kurtosis: -1.19903
skewness: 0.650806
Image statistics:
Overall:
min: 0 (0)
max: 219 (0.858824)
mean: 103.663 (0.406521)
standard deviation: 60.5097 (0.237293)
kurtosis: -1.20875
skewness: 0.300058
Rendering intent: Perceptual
Gamma: 0.454545
Chromaticity:
red primary: (0.64,0.33)
green primary: (0.3,0.6)
blue primary: (0.15,0.06)
white point: (0.3127,0.329)
Background color: white
Border color: srgb(223,223,223)
Matte color: grey74
Transparent color: black
Interlace: None
Intensity: Undefined
Compose: Over
Page geometry: 212x248+0+0
Dispose: Undefined
Iterations: 0
Compression: Zip
Orientation: Undefined
Properties:
Comment: Created with GIMP
date:create: 2021-07-31T15:40:02+02:00
date:modify: 2021-06-09T10:20:21+02:00
png:IHDR.bit-depth-orig: 8
png:IHDR.bit_depth: 8
png:IHDR.color-type-orig: 2
png:IHDR.color_type: 2 (Truecolor)
png:IHDR.interlace_method: 0 (Not interlaced)
png:IHDR.width,height: 212, 248
png:pHYs: x_res=2835, y_res=2835, units=1
png:sRGB: intent=0 (Perceptual Intent)
png:text: 1 tEXt/zTXt/iTXt chunks were found
png:tIME: 2021-07-28T15:28:16Z
signature: ae49a9efadc84f560b4c2cbf6b7cca2d8665636fc5657cbed93d0568a8c77e96
Artifacts:
filename: test.png
verbose: true
Tainted: False
Filesize: 69.8KB
Number pixels: 52.6K
Pixels per second: 5.258MB
User time: 0.000u
Elapsed time: 0:01.009
Version: ImageMagick 6.8.9-9 Q16 x86_64 2020-12-04 http://www.imagemagick.org
Alors qu'avec exitool, j'ai ça :
alain@Gramps-JujuLand2:~/Bureau/test exif$ exiftool -all "test.jpg"ExifTool Version Number : 10.10
File Name : test.jpg
Directory : .
File Size : 18 kB
File Modification Date/Time : 2021:07:31 22:59:06+02:00
File Access Date/Time : 2021:07:31 22:59:06+02:00
File Inode Change Date/Time : 2021:07:31 22:59:06+02:00
File Permissions : rw-rw-r--
File Type : JPEG
File Type Extension : jpg
MIME Type : image/jpeg
JFIF Version : 1.01
Resolution Unit : inches
X Resolution : 72
Y Resolution : 72
XMP Toolkit : Image::ExifTool 10.10
Date/Time Modified : 2004:02:29 16:21:42
Comment : Created with GIMP
Image Width : 212
Image Height : 248
Encoding Process : Progressive DCT, Huffman coding
Bits Per Sample : 8
Color Components : 3
Y Cb Cr Sub Sampling : YCbCr4:4:4 (1 1)
Image Size : 212x248
Megapixels : 0.053
cat du fichier png:
XML:com.adobe.xmp<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?>
<x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='Image::ExifTool 10.10'>
<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'>
<rdf:Description rdf:about=''
xmlns:tiff='http://ns.adobe.com/tiff/1.0/'>
<tiff:DateTime>2021-06-09T10:20:21</tiff:DateTime>
</rdf:Description>
</rdf:RDF>
</x:xmpmeta>
<?xpacket end='r'?>
Bref, je me demande si ça ne vient pas de la spécificité des png
Une idée ?
Merci
A+
Xubuntu 16.04 > Dell DM061 (2007) + Dell Inspiron 531 (2008)
Xubuntu 16.04 > Asus X51L (2009) + MSI GX723 (2009)
Xubuntu 22.04 > HP 15BA048NF (2018)
Hors ligne
#16 Le 31/07/2021, à 22:37
- Watael
Re : [Résolu] Erreur sed >> Scripts exif2date et colors
exts=("PNG" "png" "JPG" "jpg" "jpeg")
tu n'as pas de fichiers JPEG ?
for ext in ${exts[@]}; do for fichier in *.${ext}; do
shopt -s nullglob extglob nocaseglob
for fichier in *.@(jp?(e)g|png)
if [ "${fichier}" != "*.${ext}" ]
comment un fichier pourrait ne pas avoir une extension correcte alors que tu boucles sur la liste des extensions et la liste des fichiers avec chacune des extensions ?!
grep | cut | awk | cut | awk c'est pas possible : awk tout seul peut faire tout ça.
et puis, toutes ces accolades, ça me donne mal aux yeux.
Dernière modification par Watael (Le 31/07/2021, à 22:42)
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#17 Le 01/08/2021, à 08:57
- JujuLand
Re : [Résolu] Erreur sed >> Scripts exif2date et colors
Bonjour,
shopt -s nullglob extglob nocaseglob
for fichier in *.@(jp?(e)g|png)
Je ne connaissais pas shopt ... bien pratique
if [ "${fichier}" != "*.${ext}" ]; then
comment un fichier pourrait ne pas avoir une extension correcte alors que tu boucles sur la liste des extensions et la liste des fichiers avec chacune des extensions ?!
Dans le cas où il n'y avait pas de fichier d'un type d'extension, le script essayait de traiter "*.$ext", ce qui générait des erreurs.
grep | cut | awk | cut | awk c'est pas possible : awk tout seul peut faire tout ça.
Sans doute, ... je vais me plonger dan awk ...
Quand aux accolades, même si c'est un peu plus difficile, c'est parfois nécessaire ...
alain@Gramps-JujuLand2:~$ echo -e $gGreLe premier mot du texte a disparu
premier mot du texte a disparu
alain@Gramps-JujuLand2:~$ echo -e $gGre Le texte commence à la colonne 2
Le texte commence à la colonne 2
alain@Gramps-JujuLand2:~$ echo -e ${gGre}Le texte commence bien à la colonne 1
Le texte commence à la colonne 1
Du coup, j'ai pris l'habitude d'insérer les variables par des accolades.
Bon, si tes remarques vont me permettre de simplifier mon script, ça ne me donne pas la raison de mon problème avec les png.
A+
Xubuntu 16.04 > Dell DM061 (2007) + Dell Inspiron 531 (2008)
Xubuntu 16.04 > Asus X51L (2009) + MSI GX723 (2009)
Xubuntu 22.04 > HP 15BA048NF (2018)
Hors ligne
#18 Le 01/08/2021, à 10:55
- erresse
Re : [Résolu] Erreur sed >> Scripts exif2date et colors
Bonjour,
Regarde ICI pour voir si ton problème ne viendrait pas tout simplement de là... D'origine, les fichiers images PNG ne supportent pas l'EXIF.
Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois le problème solutionné, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.
Hors ligne
#19 Le 01/08/2021, à 14:39
- JujuLand
Re : [Résolu] Erreur sed >> Scripts exif2date et colors
Effectivement, le problème est lié au png ...
Si j'utilise ExifPilot (windows) le bloc exif est créé en utilisant izTXt, mais exiftool ne semble pas pouvoir ouvrir ce type de paramètre ...
Par contre, si j'utilise exiftool, le paramètre est enregistré en fin de fichier dans une structure xml. Et même si exiftool ne semble pas capable de récupérer la valeur, j'ai trouvé un moyen de le faire :
tail -n 9 test.png > png
head -n 7 png > png2
cat png2|grep DateTime
<tiff:DateTime>2021-06-09T10:20:21</tiff:DateTime>
Me reste juste à optimiser un peu le code avec shopt et gawk ...
A+
Xubuntu 16.04 > Dell DM061 (2007) + Dell Inspiron 531 (2008)
Xubuntu 16.04 > Asus X51L (2009) + MSI GX723 (2009)
Xubuntu 22.04 > HP 15BA048NF (2018)
Hors ligne
#20 Le 01/08/2021, à 21:25
- JujuLand
Re : [Résolu] Erreur sed >> Scripts exif2date et colors
Bon, voici une version qui fonctionne maintenant avec les png.
Seul truc pas trop top, comme la date n'est pas trouvée par exiftool, j'ai du rajouter une verrue à la partie concernant les dates non trouvées, pour lire la date dans la zone XML en fin de fichier, et donc m'abstenir de redemander la date.
Donc, à optimiser, les tests de cette partie ... mais ça fonctionne, ce qui est déjà pas mal ...
#!/bin/bash
version=1.20
datvers=2021-08-01
if [ "x${gYel}" == "x" ];then
export gRed='\033[1;31m'
export gGre='\033[1;32m'
export gYel='\033[1;33m'
export gBlu='\033[1;34m'
export gMag='\033[1;35m'
export gCya='\033[1;36m'
export gWhi='\033[1;37m'
export noColor='\033[0m'
export mup='\033[0A'
fi
if [ "$1" == "-v" ];then
echo -e "ii\texif2date\t$version\t$datvers"
exit
elif [ "$1" == "-h" ];then
clear
echo " "
echo -e "${gYel} exif2date ${gGre}v${version} ${gMag}${datvers}"
echo ""
echo -e "${gGre}1)${gYel} Remplacer la date du fichier par la date exif"
echo -e "${gGre}2)${gMag} Remplacer la date exif 0000-00-00 00:00:00 par une date correcte"
echo -e " ${fMag}- soit par une date à saisir puis remplacer la date fichier"
echo -e " - soit par la date fichier"
echo -e "${gGre}3)${gGre} Créer la date exif"
echo -e " ${fGre}- soit une date à saisir puis remplacer la date fichier"
echo -e " - soit la date fichier${noColor}"
echo " "
exit
elif [ "$1" == "-w" ];then
export pilot="Oui"
fi
echo -e "${gYel}Mise à jour des dates des images de ${gGre}$(pwd)${noColor}"
echo ""
echo "Mise à jour des dates des images de $(pwd)" > tridate.log
echo "" >>tridate.log
# This script uses 'Exif Pilot' for Windows to add or correct missing or bad dates
# Just set the variable containing the Exif Pilot program location in the concerned lines (62, 85)
# MISE A JOUR DE "cwd" DANS user.reg
if [ "$pilot" == "Oui" ];then
if [ $(locate -b ExifPilot.exe|wc -l) == 1 ];then
sed -i '/^"cwd"=".*"$/s/:\\\\.*/'":${PWD//\//\\\\\\\\}"'"/' "$HOME/.wine/user.reg"
else
echo -e "${gRed}Exif Pilot n'est pas installé ..."
echo -e "${gYel}Téléchargez-le: ${gGre}https://www.two-pilots.com/colorpilot.com/load/exif.exe"
echo -e "${gMag}... et installez-le !!!${noColor}"
echo " "
exit
fi
fi
cles=("EXIF:DateTimeOriginal" "EXIF:DateTime" "TIFF:DateCreation" "tiff:DateTime")
exts=("PNG" "png" "JPG" "jpg" "jpeg")
shopt -s nullglob extglob nocaseglob
for fichier in *.@(jp?(e)g|png); do
for cle in ${cles[@]}; do
date1=$(identify -format "%[${cle}]" "${fichier}"|awk -F "T" '{print $1" "$2}'| cut -f1,2,3,4,5,6| awk -F ":" '{print $1"-"$2"-"$3" "$4}'|awk -F " " '{print $1}')
time=$(identify -format "%[${cle}]" "${fichier}"|awk -F "T" '{print $1" "$2}'| cut -f1,2,3,4,5,6| awk -F ":" '{print $1"-"$2"-"$3" "$4}'|awk -F " " '{print $2}'| awk -F "-" '{print $1":"$2":"$3}')
date=$(echo $date1 $time)
if [ "x${date}" != "x" ]; then
case ${date} in
"0000-00-00 00:00:00")
if [ "$pilot" == "Oui" ];then
env WINEPREFIX="$HOME/.wine" wine E:\\Program\ Files\\Exif\ Pilot\\ExifPilot.exe 2>/dev/null
date=$(identify -format "%[EXIF:DateTime]" "${fichier}"| cut -f1,2,3,4,5| awk -F ":" '{print $1"-"$2"-"$3":"$4":"$5}')
else
date=$(stat "${fichier}"|grep Modif|awk -F " " '{print $2" "$3}'|awk -F "." '{print $1}')
echo -e "${fichier} : "0000-00-00 00:00:00" , ${gMag}${date}${gRed}"
echo -e "Modifier ${gGre}o${noColor}/${gYel}N${gGre} (non par défaut)${noColor}"
read what
if [[ "${what}" == "O" || "${what}" == "o" ]]; then
read date
exiftool -DateTime="${date}" "${fichier}"
fi
fi
touch -d "${date}" "${fichier}"
echo -e "${mup}${mup}${gYel}${fichier} ${gMag}=> ${gGre}${date}${noColor}" ;;
*)
fdate=$(stat "${fichier}"|grep Modif|awk -F " " '{print $2" "$3}'|awk -F "." '{print $1}')
touch -d "${date}" "${fichier}"
if [ "${fdate}" == "${date}" ]; then
echo -e "${gYel}${fichier} ${gMag}== ${gGre}${date}${noColor}"
else
echo -e "${gYel}${fichier} ${gMag}>> ${gGre}${date}${noColor}"
fi;;
esac
break
fi
done
if [ "x${date}" == "x" ]; then
fdate=$(stat "${fichier}"|grep Modif| awk -F " " '{print $2" "$3}'|awk -F "." '{print $1}')
ext=$(echo ${fichier} | sed 's/.*\.//g')
if [[ "$ext" == "png" || "$ext" == "PNG" ]]; then
tail -n 7 test.png > png
head -n 6 png > png2
cat png2|grep DateTime| awk -F ">" '{print $2}'|awk -F "<" '{print $1}'|awk -F "T" '{print $1" "$2}'>png
date=$(cat png)
rm png png2
if [ "x${date}" == "x" ]; then
echo -e "${fichier} : pas de date , ${gMag}${fdate}${gRed}"
echo -e "Modifier ${gGre}o${noColor}/${gYel}N${gGre} (non par défaut)${noColor}"
else
touch -d "${date}" "${fichier}" 2>/dev/null
echo -e "${gYel}${fichier} ${gMag}=> ${gGre}${date}${noColor}"
fi
else
echo -e "${fichier} : pas de date , ${gMag}${fdate}${gRed}"
echo -e "Modifier ${gGre}o${noColor}/${gYel}N${gGre} (non par défaut)${noColor}"
fi
if [ "x${date}" == "x" ]; then
read what
if [[ "${what}" == "O" || "${what}" == "o" ]]; then
if [ "$pilot" == "Oui" ];then
echo -e ${mup}${gWhi}Tapez entrée ...${noColor}
env WINEPREFIX="$HOME/.wine" wine E:\\Program\ Files\\Exif\ Pilot\\ExifPilot.exe 2>/dev/null
date=$(identify -format "%[EXIF:DateTime]" "${fichier}"| cut -f1,2,3,4,5| awk -F ":" '{print $1"-"$2"-"$3":"$4":"$5}')
else
echo -e "${mup}${gWhi}Entrez la date${noColor}"
read date
exiftool -DateTime="${date}" "${fichier}" 1>/dev/null
fi
fi
if [[ "${what}" == "O" || "${what}" == "o" ]]; then
touch -d "${date}" "${fichier}" 2>/dev/null
echo -e "${gYel}${fichier} ${gMag}=> ${gGre}${date}${noColor}"
else
touch -d "${fdate}" "${fichier}" 2>/dev/null
echo -e "${mup}${mup}${gYel}${fichier} ${gMag}=> ${gGre}${fdate}${noColor}"
fi
fi
fi
done
A la réflexion, je ferai le test png avant tout autre test, ce sera plus simple ...
A+
Dernière modification par JujuLand (Le 02/08/2021, à 10:12)
Xubuntu 16.04 > Dell DM061 (2007) + Dell Inspiron 531 (2008)
Xubuntu 16.04 > Asus X51L (2009) + MSI GX723 (2009)
Xubuntu 22.04 > HP 15BA048NF (2018)
Hors ligne
#21 Le 02/08/2021, à 10:26
- kamaris
Re : [Résolu] Erreur sed >> Scripts exif2date et colors
if [ "x${date}" == "x" ]; then
->
if [ -z "$date" ]; then
et
if [ "x${date}" != "x" ]; then
->
if [ -n "$date" ]; then
Hors ligne
#22 Le 10/08/2021, à 09:53
- JujuLand
Re : [Résolu] Erreur sed >> Scripts exif2date et colors
Application des conseils, remontée du test png en tout début et correction d'un bug concernant la lecture de DateTime, voici donc la dernièe version du script exif2date :
#!/bin/bash
version=1.22
datvers=2021-08-09
if [ "x${gYel}" == "x" ];then
export gRed='\033[1;31m'
export gGre='\033[1;32m'
export gYel='\033[1;33m'
export gBlu='\033[1;34m'
export gMag='\033[1;35m'
export gCya='\033[1;36m'
export gWhi='\033[1;37m'
export noColor='\033[0m'
export mup='\033[0A'
fi
if [ "$1" == "-v" ];then
echo -e "ii\texif2date\t$version\t$datvers"
exit
elif [ "$1" == "-h" ];then
clear
echo " "
echo -e "${gYel} exif2date ${gGre}v${version} ${gMag}${datvers}"
echo ""
echo -e "${gGre}1)${gYel} Remplacer la date du fichier par la date exif"
echo -e "${gGre}2)${gMag} Remplacer la date exif 0000-00-00 00:00:00 par une date correcte"
echo -e " ${fMag}- soit par une date à saisir puis remplacer la date fichier"
echo -e " - soit par la date fichier"
echo -e "${gGre}3)${gGre} Créer la date exif"
echo -e " ${fGre}- soit une date à saisir puis remplacer la date fichier"
echo -e " - soit la date fichier${noColor}"
echo " "
exit
elif [ "$1" == "-w" ];then
export pilot="Oui"
fi
echo -e "${gYel}Mise à jour des dates des images de ${gGre}$(pwd)${noColor}"
echo ""
echo "Mise à jour des dates des images de $(pwd)" > tridate.log
echo "" >>tridate.log
# This script uses 'Exif Pilot' for Windows to add or correct missing or bad dates
# Just set the variable containing the Exif Pilot program location in the concerned lines (62, 85)
# MISE A JOUR DE "cwd" DANS user.reg
if [ "$pilot" == "Oui" ];then
if [ $(locate -b ExifPilot.exe|wc -l) == 1 ];then
sed -i '/^"cwd"=".*"$/s/:\\\\.*/'":${PWD//\//\\\\\\\\}"'"/' "$HOME/.wine/user.reg"
else
echo -e "${gRed}Exif Pilot n'est pas installé ..."
echo -e "${gYel}Téléchargez-le: ${gGre}https://www.two-pilots.com/colorpilot.com/load/exif.exe"
echo -e "${gMag}... et installez-le !!!${noColor}"
echo " "
exit
fi
fi
cles=("EXIF:DateTimeOriginal" "EXIF:DateTime" "TIFF:DateCreation" "tiff:DateTime")
shopt -s nullglob extglob nocaseglob
for fichier in *.@(jp?(e)g|png); do
ext=$(echo "${fichier##*.}"|tr '[A-Z]' '[a-z]')
for cle in ${cles[@]}; do
if [ "$ext" == "png" ]; then
tail -n 7 test.png > png
head -n 6 png > png2
cat png2|grep DateTime| awk -F ">" '{print $2}'|awk -F "<" '{print $1}'|awk -F "T" '{print $1" "$2}'>png
date=$(cat png)
rm png png2
else
if [ "$cle" == "EXIF:DateTimeOriginal" ];then
date1=$(identify -format "%[${cle}]" "${fichier}"| awk -F " " '{print $1}'|awk -F ":" '{print $1"-"$2"-"$3}')
time=$(identify -format "%[${cle}]" "${fichier}"|awk -F " " '{print $2}')
date=$(echo ${date1} ${time})
else
date1=$(identify -format "%[${cle}]" "${fichier}"| cut -f1,2,3,4,5| awk -F ":" '{print $1"-"$2"-"$3":"$4":"$5}')
date=$(echo ${date}|sed 's|T| |1')
fi
fi
if [ -n "${date}" ]; then
case ${date} in
"0000-00-00 00:00:00")
if [ "$pilot" == "Oui" ];then
env WINEPREFIX="$HOME/.wine" wine E:\\Program\ Files\\Exif\ Pilot\\ExifPilot.exe 2>/dev/null
date=$(identify -format "%[EXIF:DateTime]" "${fichier}"| cut -f1,2,3,4,5| awk -F ":" '{print $1"-"$2"-"$3":"$4":"$5}')
else
date=$(stat "${fichier}"|grep Modif|awk -F " " '{print $2" "$3}'|awk -F "." '{print $1}')
echo -e "${gBlu}${fichier} : "0000-00-00 00:00:00" , ${gMag}${date}${gRed}"
echo -e "Modifier ${gGre}o${noColor}/${gYel}N${gGre} (non par défaut)${noColor}"
read what
if [[ "${what}" == "O" || "${what}" == "o" ]]; then
read date
exiftool -DateTime="${date}" "${fichier}"
fi
fi
touch -d "${date}" "${fichier}"
echo -e "${mup}${mup}${gYel}${fichier} ${gMag}=> ${gGre}${date}${noColor}" ;;
*)
fdate=$(stat "${fichier}"|grep Modif|awk -F " " '{print $2" "$3}'|awk -F "." '{print $1}')
touch -d "${date}" "${fichier}"
if [ "${fdate}" == "${date}" ]; then
echo -e "${gYel}${fichier} ${gMag}== ${gGre}${date}${noColor}"
else
echo -e "${gYel}${fichier} ${gMag}>> ${gGre}${date}${noColor}"
fi;;
esac
break
fi
done
if [ -z "${date}" ]; then
fdate=$(stat "${fichier}"|grep Modif| awk -F " " '{print $2" "$3}'|awk -F "." '{print $1}')
ext=$(echo ${fichier} | sed 's/.*\.//g')
echo -e "${gBlu}${fichier} : pas de date , ${gMag}${fdate}${gRed}"
echo -e "Modifier ${gGre}o${noColor}/${gYel}N${gGre} (non par défaut)${noColor}"
read what
if [[ "${what}" == "O" || "${what}" == "o" ]]; then
if [ "$pilot" == "Oui" ];then
echo -e ${mup}${gWhi}Tapez entrée ...${noColor}
env WINEPREFIX="$HOME/.wine" wine E:\\Program\ Files\\Exif\ Pilot\\ExifPilot.exe 2>/dev/null
date=$(identify -format "%[EXIF:DateTime]" "${fichier}"| cut -f1,2,3,4,5| awk -F ":" '{print $1"-"$2"-"$3":"$4":"$5}')
else
echo -e "${mup}${gWhi}Entrez la date${noColor}"
read date
exiftool -DateTime="${date}" "${fichier}" 1>/dev/null
fi
if [[ "${what}" == "O" || "${what}" == "o" ]]; then
touch -d "${date}" "${fichier}" 2>/dev/null
echo -e "${gYel}${fichier} ${gMag}=> ${gGre}${date}${noColor}"
else
touch -d "${fdate}" "${fichier}" 2>/dev/null
echo -e "${mup}${mup}${gYel}${fichier} ${gMag}=> ${gGre}${fdate}${noColor}"
fi
fi
fi
done
Dernière modification par JujuLand (Le 10/08/2021, à 09:53)
Xubuntu 16.04 > Dell DM061 (2007) + Dell Inspiron 531 (2008)
Xubuntu 16.04 > Asus X51L (2009) + MSI GX723 (2009)
Xubuntu 22.04 > HP 15BA048NF (2018)
Hors ligne
#23 Le 10/08/2021, à 11:39
- kamaris
Re : [Résolu] Erreur sed >> Scripts exif2date et colors
Il y avait celui-là aussi :
if [ "x${gYel}" == "x" ];then
Mais bon, des milliers de scripts ont tourné et continuent souvent de tourner avec ça, donc ça n'est pas vraiment un problème.
Hors ligne
#24 Le 10/08/2021, à 12:05
- MicP
Re : [Résolu] Erreur sed >> Scripts exif2date et colors
Bonjour
Un if avec un seul appel à la commande export pour plusieurs variables :
if [ "x${gYel}" == "x" ]; then
export gRed='\033[1;31m' \
gGre='\033[1;32m' \
gYel='\033[1;33m' \
gBlu='\033[1;34m' \
gMag='\033[1;35m' \
gCya='\033[1;36m' \
gWhi='\033[1;37m' \
noColor='\033[0m' \
mup='\033[0A'
fi
Dernière modification par MicP (Le 11/08/2021, à 05:36)
Hors ligne
#25 Le 10/08/2021, à 12:55
- Watael
Re : [Résolu] Erreur sed >> Scripts exif2date et colors
export n'a pas d'intérêt, ici, puisque les variables ne seront pas transmises à un programme tiers.
mais, comment $gYel pourrait-elle être définie au tout début du script ?
et serait-elle définie dans le shell courant (intentionnellement, ou par accident/essai...), les autres couleurs seraient-elles, elles aussi, définies ?
Dernière modification par Watael (Le 10/08/2021, à 12:56)
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne