Store highest filename from ls command to a variable


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Store highest filename from ls command to a variable
# 1  
Old 10-28-2010
Store highest filename from ls command to a variable

I am sure it has been answered in some form or the other in this forum but trust me I have spent last couple of hours looking for an answer but can't find it.

I want to do a very simple operation within my script.

Let's say I have 4 files with the names file1.log, file2.log, file3.log and file4.log. I want to do a listing of file*.log and store the highest name (in this case file4.log) in a variable. I have this in the script:

flist=$(ls file*.log)
which gives me a string or list in the format "file1.log file2.log file3.log file4.log.
How do I parse this string or file and store file4.log to a variable, say fname.

Thanks a lot in advance for the help.
# 2  
Old 10-28-2010
this helps?
Code:
ls *.log| sort -u |tail -1

# 3  
Old 10-28-2010
Quote:
Originally Posted by EAGL€
this helps?
Code:
ls *.log| sort -u |tail -1

Absolutely. That did it. Thanks a lot.......

Folks here are real gurus. They have answers to just about anything.
For someone like me who is totally new to Unix, this forum is a bliss.
# 4  
Old 10-28-2010
Quote:
Originally Posted by EAGL€
this helps?
Code:
ls *.log| sort -u |tail -1

sort -n or sort -u ?
# 5  
Old 10-29-2010
Neither sort will work if you get more than 9 files unless the single digit numbers have a 0 before their number (01... 09, etc)
Code:
(examples)
# touch file{1,2,5,10,15,20}.log
# ls *.log| sort -u | tail -1
file5.log
# ls *.log| sort -n | tail -1
file5.log
#

sort -V works, but so does ls -v without the need for sort
Code:
# ls *.log | sort -V | tail -1
file20.log
# ls -v *.log | tail -1
file20.log
#

This User Gave Thanks to fubaya For This Post:
# 6  
Old 10-29-2010
Quote:
Originally Posted by fubaya
Neither sort will work if you get more than 9 files unless the single digit numbers have a 0 before their number (01... 09, etc)
Code:
(examples)
# touch file{1,2,5,10,15,20}.log
# ls *.log| sort -u | tail -1
file5.log
# ls *.log| sort -n | tail -1
file5.log
#

sort -V works, but so does ls -v without the need for sort
Code:
# ls *.log | sort -V | tail -1
file20.log
# ls -v *.log | tail -1
file20.log
#

Thanks fubaya for the clarification.
"ls -u" worked for me as the numbers in the files I am working with have a four digit number that will always stay as four digit. So, I will not have any issues with it. However, it is really good to know to use "ls _V" or "ls -v" to be on the safe side. Curiously, options -v and -V are not documented in the manual pages I get by typing "man sort".

Thanks again. Really appreciate.

Last edited by sssccc; 10-29-2010 at 01:34 PM..
# 7  
Old 10-29-2010
If (as we now now) you have files of the form filennnn.log (where nnnn) is a four-digit number with leading zeros, the sort is not needed.

Code:
ls -1 file????.log 2>/dev/null| tail -1


Btw. The -v and -V switches referred to by "fubayer" are non-standard (whatever that means nowadays). But we don't know what O/S either of you are running.

Last edited by methyl; 10-29-2010 at 03:19 PM.. Reason: Omitted filename?
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Programming

Python - store output of command to a variable

I am trying to store output of python command in variable. Could you please help how I can do that ? For example I am executing the following command - "CentOS" in server_desc The output would be True or False I would like to store the output in a variable say outPut and use condition... (4 Replies)
Discussion started by: atanubanerji
4 Replies

2. Shell Programming and Scripting

Store command inside variable

Is it possible to store a command inside a variable? i want this piece to be stored inside a variable, so i can use it later in a different command $u | cut -d " " -f 2 var="$u | cut -d " " -f 2" eval $var I tried to use eval but I receive this error: -f 2: command not found ... (5 Replies)
Discussion started by: velos
5 Replies

3. Shell Programming and Scripting

How to store the return value of a command into a variable?

I want to store the return value of grep -c string filename into a variable, say count. How do I do that? For example if grep -c "string" "filename" shows 0 on executing it in the sh shell then I want to store this 0 in a variable. Is it possible? :D (5 Replies)
Discussion started by: navienavnav
5 Replies

4. Shell Programming and Scripting

store last command exit status in variable in shell script

Hello All My req is to store the exit status of a command in shell variable I want to check whether the file has header or not The header will contain the string DATA_ACQ_CYC_CNTL_ID So I am running the command head -1 $i | grep DATA_ACQ_CYC_CNTL_ID Now I have to check if... (6 Replies)
Discussion started by: Pratik4891
6 Replies

5. Shell Programming and Scripting

To store the file name o/p from find command in to a variable

Hi How to use a variable to store the filename of a file which was found by the 'find' command. can this be practical-->var = find . -name "filename.dat" Please help.. (1 Reply)
Discussion started by: ayyappaas
1 Replies

6. Shell Programming and Scripting

Using variable to store of find command

Hello Experts I am newbie to unix and writing one script to make archive files Problme i am facing is : I have used find command to find the type of files and I am storing find command results in a variable. When I echo the variable I can see that path is printed properly but when i am... (5 Replies)
Discussion started by: mitsyjohn
5 Replies

7. Shell Programming and Scripting

Not able to store command inside a shell variable, and run the variable

Hi, I am trying to do the following thing var='date' $var Above command substitutes date for and in turn runs the date command and i am getting the todays date value. I am trying to do the same thing as following, but facing some problems, unique_host_pro="sed -e ' /#/d'... (3 Replies)
Discussion started by: gvinayagam
3 Replies

8. Shell Programming and Scripting

how to store grep command in a Variable

I have a variable A echo $A 5060 I am exporting the value X,Y,Z and it id fetching right thing and When I run C=`${X} -l ${Y} ${Z} "trap '' INT;. ~/.profile >/dev/null 2>/dev/null; netstat -na | grep \$A`" here it is going to same directory and also running netstat -na | grep 5060 ... (4 Replies)
Discussion started by: madhusmita
4 Replies

9. Solaris

NAWK - setting a variable to the highest value

Hi, new to nawk so not sure how this works, I have a file with three values 23:36:18 - i need to set a variable called SCORE with the highest value from the file (i.e. 36) using nawk can anyone help? thanks (1 Reply)
Discussion started by: Pablo_beezo
1 Replies

10. UNIX for Dummies Questions & Answers

How to Store command O/P to a variable...

Hi all.. I got a problem.. Its easy to redirect o/p to a file.. But Is it possible to redirect the O/P to a variable? For example: I've a command in my script: string1=cut -d ':' -f2 file.txt When I do: echo $string1 The value is empty... Pls suggest me how to store the value... (7 Replies)
Discussion started by: smartbuddy
7 Replies
Login or Register to Ask a Question