Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 14/01/2014, à 11:57

EricG

[Résolu]Construire un fichier texte d'après des extraits

Bonjour,

Je pense que le script est assez évolué pour sortir de la "proposition de script" pour atterrir ici.

Voilà le but :
Construire un fichier texte d'après des extraits sous forme de fichiers dans un répertoire, au fur et à mesure de questions oui/non.
Franchement, c'est pour une lettre de motivation, elle est différente selon à qui je l'adresse, je mets des trucs en avant, d'autres moins, etc.
Le résultat est sous forme d'un conc.txt qu'il faut encore mettre en forme dans un traitement de texte.

Les limitations :
Les extraits sont sous forme de 1.txt, 2.txt, 3.txt, etc.
Je préfèrerais la forme "1 explication du contenu.txt", "2 un autre contenu.txt"
Bref, toujours un numéro mais avec des explications.
Les problème vient du test sur l’existence du fichier, et du "trop d'arguments" que vous connaissez bien.
Donc au lieu des if [ -e $indic*.txt ] je n'ai queif [ -e $indic.txt ]

Également, bon je n'arrive pas encore à insérer un saut de ligne entre les extraits concaténés dans conc.txt.
Ça doit être un truc tout con mais bon.

#!/bin/bash

clear

# On se place dans le bon répertoire
rep=/media/ericgbnew/Transcend/lettre_motivation/
cd $rep
indic=0

# Tant que c'est vrai !
while true; do

		indic=$(($indic + 1))
		# Si le fichier $indic*.txt n'existe pas --> exit
		if [ -e $indic.txt ]; then
			echo ""
			echo "Le fichier $indic*.txt propose cet extrait :"
			echo
			cat $indic.txt
			echo ""
		else
			echo "Le fichier $indic*.txt n'existe pas, fin du script."
			exit
		fi

		# On pose la question...
		read -p "Voulez vous ajouter cet extrait [oui/non] ? : " choix
		case $choix in
			# la réponse est oui...
			oui )
				cat $indic.txt>>conc.txt
				clear
				echo "Lettre de motivation en construction :"
				echo "--------------------------------------"
				echo
				cat conc.txt
				echo 
				echo "--------------------------------------";;
			# la réponse est non...
			non ) clear
				echo "Lettre de motivation en construction :"
				echo "--------------------------------------"
				echo
				cat conc.txt
				echo
				echo "--------------------------------------";;
			# la réponse est autre...
			* ) echo ""
				clear
				echo "Répondez oui ou non !"
				indic=$(($indic - 1));;
		esac
	done

Dernière modification par EricG (Le 15/01/2014, à 13:25)

Hors ligne

#2 Le 14/01/2014, à 12:45

pingouinux

Re : [Résolu]Construire un fichier texte d'après des extraits

Bonjour,

Je préfèrerais la forme "1 explication du contenu.txt", "2 un autre contenu.txt"

Tu peux faire ceci à l'intérieur de ta boucle while, donc pour une valeur de indic donnée

for fichier in $indic*.txt; do
   Traitement de "$fichier"
done

Inconvénient : pour indic=1, tu récupéreras aussi les fichiers commençant par 11, 12, etc…

je n'arrive pas encore à insérer un saut de ligne entre les extraits concaténés dans conc.txt.

echo >>conc.txt

Remarque :
Tu peux remplacer

indic=$(($indic + 1))

par

((indic++))

Hors ligne

#3 Le 15/01/2014, à 13:25

EricG

Re : [Résolu]Construire un fichier texte d'après des extraits

Bonjour,

Heu, le traitement consisterait à donner une explication selon indic ?
donc, par exemple "si $indic = 1 alors 'Objet de la lettre' "
"si $indic = 2 alors 'Civilité' ", etc.

Inconvénient : pour indic=1, tu récupéreras aussi les fichiers commençant par 11, 12, etc…

Il y aurait bien une astuce, genre au lieu de "1 Objet de la lettre.txt" : "01 Objet de la lettre.txt", etc.
J'avais retiré le texte, je pensais que ça posait problème pour le test d'existence..
Et je prends les deux premiers caractères, et quand on manipule par l’arithmétique 01 redevient 1.

Je comprends les deux astuces finales, merci pour ton aide.
J'avoue que j'ai moins la tête à ça aujourd'hui, Bonne journée.

Hors ligne

#4 Le 15/01/2014, à 14:02

pingouinux

Re : [Résolu]Construire un fichier texte d'après des extraits

Peux-tu montrer les noms de tes fichiers ?

ls *.txt

Si le numéro est toujours suivi du même caractère (espace, point ou autre), on s'en sort facilement.

Hors ligne