1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
| #!/bin/bash
fic_source_glob="exemples.txt"
fic_source="exemple.txt"
function check_td {
if [ "$(grep -cE "<[tT][dD].*>" $fic_source)" != "$(grep -cE "</[tT][dD].*>" $fic_source)" ]; then
echo "problème td"; exit
else
sed -i "s/<td/<TD/g;s/<Td/<TD/g;s/<tD/<TD/g" "$fic_source".tmp
sed -i "s/<\/td/<\/TD/g;s/<\/Td/<\/TD/g;s/<\/tD/<\/TD/g" "$fic_source".tmp
#sed -i 's/<\/*[tT][dD]/\U&\E/' "$fic_source".tmp
# cat "$fic_source".tmp && exit
fi
return 0
}
function check_tr {
# echo -n "nb tr: " ; grep -cE "<[tT][rR].*>" $fic
# echo -n "nb /tr: " ; grep -cE "</[tT][rR].*>" $fic
if [ "$(grep -cE "<[tT][rR].*>" $fic_source)" != "$(grep -cE "</[tT][rR].*>" $fic_source)" ]; then
echo "problème tr"; exit
else
sed "s/<tr/<TR/g;s/<Tr/<TR/g;s/<tR/<TR/g" "$fic_source" > "$fic_source".tmp
sed -i "s/<\/tr/<\/TR/g;s/<\/Tr/<\/TR/g;s/<\/tR/<\/TR/g" "$fic_source".tmp
#sed 's/<\/*[tT][rR]/\U&\E/' "$fic_source" | tr '<TR' '#<TR' | tr -d '\n' > "$fic_source".tmp
# cat "$fic_source".tmp && exit
fi
return 0
}
nb_td= ; nb_tr=
if check_tr && check_td; then
# importance des "" (plutôt que 's///g') pour interpréter correctement les \n ; ce qui oblige à échapper les "" texte
sed -i -e "s/<img/\\n<img/g" -e "s/ width=\"\([0-9]*\)\"/\\n#w:\1/g" \
-e "s/ height=\"\([0-9]*\)\"\(.*\)/\\n#h:\1/g" "$fic_source".tmp
# en deux fois, à voir ...
sed -i "s/\(.*\)src=\"\([^\"]*\)\(.*\)/#src:\2/g" "$fic_source".tmp
nb_td="$(grep -cE "<TD.*>" $fic_source.tmp)"
nb_tr="$(grep -cE "<TR.*>" $fic_source.tmp)"
fi
# toutes les séquences sur une ligne
#sed -n '/<TR/,/<\/TR/p' "$fic_source".tmp | tr -d '\n' > "$fic_source".tmp1 # besoin d'un fichier supplémentaire
#cat "$fic_source".tmp1 > "$fic_source".tmp && rm "$fic_source".tmp1 # provisoirement
#echo "" >> "$fic_source".tmp # on a supprimé même le dernier \n, pas bon
#cat "$fic_source".tmp && exit
while read line; do
[ -z "$line" ] && continue # parce que je ne vois pas où est l'erreur, il subsiste une ligne apparemment vide
# echo "line: /$line/"
case "${line:0:1}" in
\#) echo "$line" ;; # c'est là qu'on agit qui reprend la séquence et translitére le fichier à mon avis, ( à voir en pratique mais là je suis pas dispo)
*) echo "pas line: $line" ;;
esac
# ici on récupère les valeurs de src, on réécrit le fichier en remplaçant les td suivi de src par la div qui va bien
# et transformer toutes les balises en ce qu'on veut
done < "$fic_source".tmp |