Je suis en train de lire un fichier de propriétés qui contient des chemins de fichier utilisant un script shell. Maintenant, en fonction de ce chemin de fichier, je veux créer le nom du fichier zip. Quelque chose comme ça ... Mon propriété contenu du fichier ::Comment créer le nom de fichier requis dans unix à l'aide du script shell
path=tmp/inputs/logs/abc
path=tmp/backup/inte/xyz
destpath=abc/xyz
Maintenant, je suis en mesure de créer le nom de fichier comme abc.zip et xyz.zip comme:
paths=`grep path myfile.property |cut -d= -f2`
d_path=`grep destpath myfile.property |cut -d= -f2`
filename=$d_path/$(basename $paths).zip
qui créent abc.zip et xyz.zip. Mais je veux créer un nom en prenant les trois derniers paramètres du chemin. Quelque chose comme ça ...
- pour
abc.zip
il devrait êtreinputs_logs_abc.zip
et - pour
xyz.zip
il devrait êtrebackup_inte_xyz.zip
EDIT
Paths=`grep path myfile.txt |cut -d= -f2`
d_Path=`grep destpath myfile.txt |cut -d= -f2`
for s_Path in $Paths
do
prefix=${Paths%%/*/*/*}
without_prefix=${Paths##${prefix}/}
slashes_to_underscores=${without_prefix//\//_}
zipFile=$d_Path/${slashes_to_underscores}.zip
find $s_Path -type f -name "*.log" | xargs zip -mT $zipFile [email protected]
done
Au-dessus est mon code.By En utilisant ce que je ne suis pas capable d'atteindre ma cible. Quelqu'un peut-il m'aider dans ce domaine?
Quel shell écrivez-vous? Quelle est la pertinence de 'destpath' et' d_path' dans ces snippets? – Johnsyweb
J'utilise bash.destpath est un mot-clé qui se trouve dans le fichier de propriétés, d'après lequel je lis ce fichier et stocke ce chemin dans la variable d_path. – MAS1
Alors ma réponse devrait résoudre votre problème. Vous pouvez l'essayer à l'invite et faire écho aux variables au fur et à mesure pour voir comment cela fonctionne. – Johnsyweb