Construction d'une enveloppe avec tar
richy
-
richy -
richy -
bonjour!
Sur mon serveur central dans le repertoire /home/sortie/encours, les structures (001,002,.........,099) génèrent 04 fichiers à envoyer aux différentes agences (00101,00102,........,00500) de mon réseau.
code structure (001,002,...............,099)
code agence (00101,00102,.................,00500)
Remarque : deux ou plusieurs structures différentes peuvent générer des fichiers pour la même agence
format des 04 fichiers:
att_top_sss_aaaaa_jjmmaaaa_xxxxx
att_lig_sss_aaaaa_jjmmaaaa_xxxxx
att_gar_sss_aaaaa_jjmmaaaa_xxxxx
att_obs_sss_aaaaa_jjmmaaaa_xxxxx
att_top ; att_lig ; att_gar ; att_obs non distinguant les 04 fichiers.
sss: code structure émettrice
aaaaa: code agence destinataire
jjmmaaaa: date du jour de génération du fichier
xxxxx: numero séquentiel (00001, 00002, ..........0000n)
je veux former un enveloppe qui regroupe les 04 fichiers de chaque agence selon la structure émettrice avec un tar cvf , sous le nom : att_sss_aaaaa_jjmmaaaa_xxxxx
Merci d'avance!
cordiales salutations.
Sur mon serveur central dans le repertoire /home/sortie/encours, les structures (001,002,.........,099) génèrent 04 fichiers à envoyer aux différentes agences (00101,00102,........,00500) de mon réseau.
code structure (001,002,...............,099)
code agence (00101,00102,.................,00500)
Remarque : deux ou plusieurs structures différentes peuvent générer des fichiers pour la même agence
format des 04 fichiers:
att_top_sss_aaaaa_jjmmaaaa_xxxxx
att_lig_sss_aaaaa_jjmmaaaa_xxxxx
att_gar_sss_aaaaa_jjmmaaaa_xxxxx
att_obs_sss_aaaaa_jjmmaaaa_xxxxx
att_top ; att_lig ; att_gar ; att_obs non distinguant les 04 fichiers.
sss: code structure émettrice
aaaaa: code agence destinataire
jjmmaaaa: date du jour de génération du fichier
xxxxx: numero séquentiel (00001, 00002, ..........0000n)
je veux former un enveloppe qui regroupe les 04 fichiers de chaque agence selon la structure émettrice avec un tar cvf , sous le nom : att_sss_aaaaa_jjmmaaaa_xxxxx
Merci d'avance!
cordiales salutations.
A voir également:
- Construction d'une enveloppe avec tar
- Simulateur de construction 14 - Télécharger - Simulation
- Euro construction equipment limited avis - Forum Consommation & Internet
- Enveloppe libellée - Forum Études / Formation High-Tech
- Symbole enveloppe word ✓ - Forum Word
- Enveloppe libellée ✓ - Forum Loisirs / Divertissements
3 réponses
Déjà référe toi au man de ton OS, car il n'y a pas toujours les mêmes commandes dessus. c'est quoi l'OS?
http://manpages.ubuntu.com/manpages/gutsy/fr/man1/tar.1.html
http://manpages.ubuntu.com/manpages/gutsy/fr/man1/tar.1.html
hello
qu'est ce qu'une enveloppe ? un fichier tar appellé att_sss_aaaaa_jjmmaaaa_xxxxx qui contient tout les fichiers de l'agence aaaaa ?
qu'est ce qu'une enveloppe ? un fichier tar appellé att_sss_aaaaa_jjmmaaaa_xxxxx qui contient tout les fichiers de l'agence aaaaa ?
enveloppe = une archive avec tar cvf c'est à dire :
exemple pour l'agence 00101 qui à reçu ses 04 fichiers de la structure 005 en date du 27062013 avec le numéro séquentiel 00001 on aura l'archive suivante:
tar cvf att_005_00101_27062013_00001 /home/sotie/encours/att_top_005_00101_27062013_00001 /home/sotie/encours/att_lig_005_00101_27062013_00001 /home/sotie/encours/att_gar_005_00101_27062013_00001 /home/sotie/encours/att_obs_005_00101_27062013_00001
la même agence 00101 à reçu 04 autres fichiers de la structure 002 la même date avec le numero séquentiel 00002 --> on aura l'archive ou l'enveloppe suivante
tar cvf att_002_00101_27062013_00002 /home/sotie/encours/att_top_002_00101_27062013_00002 /home/sotie/encours/att_lig_002_00101_27062013_00002 /home/sotie/encours/att_gar_002_00101_27062013_00002 /home/sotie/encours/att_obs_002_00101_27062013_00002
.
.
etc pour les autres agences je dois construire une archive pour toute les agences pour les 04 fichiers reçus d'une structure quelconque.
cordiales salutations dubcek!
merci!
exemple pour l'agence 00101 qui à reçu ses 04 fichiers de la structure 005 en date du 27062013 avec le numéro séquentiel 00001 on aura l'archive suivante:
tar cvf att_005_00101_27062013_00001 /home/sotie/encours/att_top_005_00101_27062013_00001 /home/sotie/encours/att_lig_005_00101_27062013_00001 /home/sotie/encours/att_gar_005_00101_27062013_00001 /home/sotie/encours/att_obs_005_00101_27062013_00001
la même agence 00101 à reçu 04 autres fichiers de la structure 002 la même date avec le numero séquentiel 00002 --> on aura l'archive ou l'enveloppe suivante
tar cvf att_002_00101_27062013_00002 /home/sotie/encours/att_top_002_00101_27062013_00002 /home/sotie/encours/att_lig_002_00101_27062013_00002 /home/sotie/encours/att_gar_002_00101_27062013_00002 /home/sotie/encours/att_obs_002_00101_27062013_00002
.
.
etc pour les autres agences je dois construire une archive pour toute les agences pour les 04 fichiers reçus d'une structure quelconque.
cordiales salutations dubcek!
merci!
soit l'arborescence:
quelque chose comme ça ?
$ find home|sort -t _ -k 3 home home/sortie home/sortie/encours home/sortie/encours/att_gar_002_00101_27062013_00002 home/sortie/encours/att_lig_002_00101_27062013_00002 home/sortie/encours/att_obs_002_00101_27062013_00002 home/sortie/encours/att_top_002_00101_27062013_00002 home/sortie/encours/att_gar_005_00101_27062013_00001 home/sortie/encours/att_lig_005_00101_27062013_00001 home/sortie/encours/att_obs_005_00101_27062013_00001 home/sortie/encours/att_top_005_00101_27062013_00001on construit les commandes tar :
$ find home | awk -F "/" '/_/ {sub("_[^_]*_", "_", $NF); if(!t[$NF]++){printf "tar -cf " $NF; sub("_", "_*_", $NF); print " home/sortie/encours/" $NF} }' tar -cf att_002_00101_27062013_00002 home/sortie/encours/att_*_002_00101_27062013_00002 tar -cf att_005_00101_27062013_00001 home/sortie/encours/att_*_005_00101_27062013_00001 $
quelque chose comme ça ?
pour exécuter, il suffit d'ajouter à la commande : | bash
plus dense:
plus dense:
$ find home -type f -printf "tar -cf %f %p\n" | awk '{sub("_[^_]*", ""); sub("_[^_]*", "_*", $4) } !t[$3]++' tar -cf att_002_00101_27062013_00002 home/sortie/encours/att_*_002_00101_27062013_00002 tar -cf att_005_00101_27062013_00001 home/sortie/encours/att_*_005_00101_27062013_00001 $
Salut dubcek!
tu n'as pas une solution moins complexe!
j'ai trouvé avec la boucle for:
cd /home/sotie/encours/
ls /home/sotie/encours/ > /home/sotie/liste
for file in 'cat /home/sotie/liste'
do
echo "$file" > /home/sotie/Fich
SS=' cut -c9-32 /home/sotie/Fich'
export SS
sed "/$SS/d" /home/sotie/liste > /home/sotie/reste
tar cvf att_$SS /home/sotie/att*_$SS
compress att_$SS
cp /home/sotie/reste /home/sotie/liste
done
exit
cordiales salutations!
tu n'as pas une solution moins complexe!
j'ai trouvé avec la boucle for:
cd /home/sotie/encours/
ls /home/sotie/encours/ > /home/sotie/liste
for file in 'cat /home/sotie/liste'
do
echo "$file" > /home/sotie/Fich
SS=' cut -c9-32 /home/sotie/Fich'
export SS
sed "/$SS/d" /home/sotie/liste > /home/sotie/reste
tar cvf att_$SS /home/sotie/att*_$SS
compress att_$SS
cp /home/sotie/reste /home/sotie/liste
done
exit
cordiales salutations!
Merci d'avance!