Merger 2 fichiers / script sh
Résolu
snow_frog
Messages postés
216
Date d'inscription
Statut
Membre
Dernière intervention
-
zipe31 Messages postés 36402 Date d'inscription Statut Contributeur Dernière intervention -
zipe31 Messages postés 36402 Date d'inscription Statut Contributeur Dernière intervention -
A voir également:
- Merger 2 fichiers / script sh
- Supercopier 2 - Télécharger - Gestion de fichiers
- Script vidéo youtube - Guide
- Renommer des fichiers en masse - Guide
- Fichiers epub - Guide
- Wetransfer gratuit fichiers lourd - Guide
4 réponses
Ça m'a l'air très compliqué, supposons que 2013_09_25 et 2013_09_26 soit dans le même répertoire (mettons /home/toto/photos), il suffit de faire un
Sinon, le plus simple c'est d'utiliser et à chaque ligne rencontrée, en utilisant le séparateur de colonne "|" extraire le 1er élement (le répertoire) et itérer sur les éléments suivants pour les concaténer avec celui-ci. Le script serait écrit non pas en shell mais en awk, qui est plus adapté pour ce que tu veux faire.
Bonne chance
find /home/totopour avoir le résultat souhaité.
Sinon, le plus simple c'est d'utiliser et à chaque ligne rencontrée, en utilisant le séparateur de colonne "|" extraire le 1er élement (le répertoire) et itérer sur les éléments suivants pour les concaténer avec celui-ci. Le script serait écrit non pas en shell mais en awk, qui est plus adapté pour ce que tu veux faire.
Bonne chance
merci de ta réponse,
même si je ne suis pas sûr d'avoir tout compris
première étape, "j'éclate" mon fichier "repertoire" --> un repertoire par ligne
ensuite il faudrait que l'imprime la ligne 1 du fichier repertoire_ligne, avec chaque champ de la ligne 1 du fichier image
==> c'est ça que je ne vois pas comment faire.
sinon, j'ai trouvé un contournement (qui ne me plait pas trop, mais bon si je n'ai pas le choix je le garderai...:
dans la selectio ndes fichiers sous zenity, au lieu d'afficher que le nom de fichier j'affiche le chemin
avant:
contournement:
même si je ne suis pas sûr d'avoir tout compris
première étape, "j'éclate" mon fichier "repertoire" --> un repertoire par ligne
sed -e 's/|/\n/g' repertoire > repertoire_ligne
frog> cat repertoire
2013_09_25|2013_09_26
frog> cat repertoire_ligne
2013_09_25
2013_09_26
ensuite il faudrait que l'imprime la ligne 1 du fichier repertoire_ligne, avec chaque champ de la ligne 1 du fichier image
==> c'est ça que je ne vois pas comment faire.
sinon, j'ai trouvé un contournement (qui ne me plait pas trop, mais bon si je n'ai pas le choix je le garderai...:
dans la selectio ndes fichiers sous zenity, au lieu d'afficher que le nom de fichier j'affiche le chemin
avant:
find $i/*.png -printf "%f\n" > tmp3
contournement:
find $i/*.png -printf "%h/%f\n" > tmp3
Salut,
Pourquoi supprimes-tu le chemin là, puisque tu t'évertues à vouloir le remettre ensuite ?
find $i/*.png -printf "%f\n" > tmp3
Pourquoi supprimes-tu le chemin là, puisque tu t'évertues à vouloir le remettre ensuite ?
Salut,
je le supprime pour ne pas qu'il apparaise dans la boite de dialogue de selection de fichier pour plus de lisiblité à l'écran
j'ai essayé sous zenity de "l'afficher" mais de cacher la colonne correspondante, mais du coup il n'est pas dans la sortie zenity...
je le supprime pour ne pas qu'il apparaise dans la boite de dialogue de selection de fichier pour plus de lisiblité à l'écran
j'ai essayé sous zenity de "l'afficher" mais de cacher la colonne correspondante, mais du coup il n'est pas dans la sortie zenity...
A ce moment là, mieux vaut récupérer la liste avec les chemins complets dans un fichier, construire un second fichier pour l'affichage dans zenity (avec numéro) et en fonction du numéro choisi (et non pas du nom) afficher le numéro de ligne correspondant...
Le fichier avec chemin+nom :
Le fichier à construire avec numéro+nom :
La ligne a récupéré en fonction de son numéro :
Le fichier avec chemin+nom :
$ cat chemin
2013_09_25/img_20130925_12h00.png
2013_09_25/img_20130925_14h00.png
2013_09_25/img_20130925_16h00.png
2013_09_26/img_20130926_11h00.png
2013_09_26/img_20130926_16h00.png
Le fichier à construire avec numéro+nom :
$ nl < <(sed 's#.*/##' chemin)
1 img_20130925_12h00.png
2 img_20130925_14h00.png
3 img_20130925_16h00.png
4 img_20130926_11h00.png
5 img_20130926_16h00.png
La ligne a récupéré en fonction de son numéro :
$ sed -n 2p chemin
2013_09_25/img_20130925_14h00.png