Salutations,Technique améliorée pour stocker un nom de fichier dans une variable?
J'ai besoin de stocker le nom de fichier d'un journal dans une variable afin que mon script puisse effectuer des vérifications sur les fichiers journaux quotidiens. Ces journaux ont toujours un nom différent car ils ont un horodatage dans le nom. Actuellement, j'utilise une méthode hodge podged qui envoie une commande ls pour sed, trier, couper et tail afin d'obtenir le nom.
CRON_LOG=$(ls -1 $LOGS_DIR/fetch_cron_{true,false}_$CRON_DATE*.log 2> /dev/null | sed 's/^[^0-9][^0-9]*\([0-9][0-9]*\).*/\1 &/' | sort -n | cut -d ' ' -f2- | tail -1)
MISE À JOUR:
$ CRON_DATE est fourni comme argument au script. C'est la date (au jour) sur laquelle le journal a été créé. Parfois, plusieurs journaux existeront pour le même jour, donc je veux que ce soit le plus récent.
Quelques noms typiques:
fetch_cron_false_031810090452.log
fetch_cron_true_031310090001.log
etc ...
S'il vous plaît garder à l'esprit que cela fonctionne comme cela est. Je pense juste qu'il est moche et j'essaie de trouver une meilleure façon de le retirer. Je suis assez sûr que j'ai mélangé ceci ensemble de quelques trucs que j'ai trouvés google il ya quelques mois. ça marche maintenant mais je ne suis pas vraiment content de la technique. J'ai quelques idées sur la façon de faire mieux, mais j'ai eu beaucoup de succès sur ce site avant et je pensais qu'il serait préférable de se référer aux dieux stackoverflow d'abord. Toutes les réponses sont grandement appréciées.
Merci, Ryan
Vous devez donner plus d'informations ici. Quels sont les noms de fichiers typiques? Quel fichier journal souhaitez-vous obtenir? Qu'est-ce que '$ CRON_DATE'? –
Mis à jour. Merci pour la note. – SDGuero
Je vais vous dire ce qui va l'améliorer en ce moment - sortez cela en quelques opérations. Faire un one-liner comme ça est un bon moyen de regarder le code plus tard et de vous faire faire un facepalm. La lisibilité est toujours mieux que d'être intelligent, 0) –