Improved technique to store a filename in a variable?

Posted by SDGuero on Stack Overflow See other posts from Stack Overflow or by SDGuero
Published on 2010-03-18T22:41:11Z Indexed on 2010/03/18 23:01 UTC
Read the original article Hit count: 144

Filed under:
|
|
|
|

Greetings,

I need to store the filename of a log into a variable so my script can perform some checks on the daily log files. These logs always have a different name because they have a timestamp in the name. Currently I'm using a hodge podged method that pipes an ls command to sed, sort, cut, and tail in order to get the name out.

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 )

UPDATE: $CRON_DATE is supplied as an argument to the script. It is the date (to the day) that the log was created on. Sometimes multiple logs will exist for the same day so I want this to get the most recent one.

A typical filename is fetch_cron_false_031810090452.log

I'm pretty sure I kluged this together from some stuff I found google a few months ago. it works now but I'm not really happy with the technique. I have some ideas about how to do this better but I have had great success on this site before and thought it might be best to refer to the stackoverflow gods first. All answers are greatly appreciated.

Thanks, Ryan

© Stack Overflow or respective owner

Related posts about bash

Related posts about variable