Get latest filename without extension


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Get latest filename without extension
# 1  
Old 12-11-2012
Get latest filename without extension

I need to write a shell script to display the output of ls command like this

Code:
ls -ltr *txt

I get this

Code:
-rw-r----- 1 oracle dba 51912704 Dec 11 10:27 /usr/local/sam/test12112012101247AM.txt
-rw-r--r-- 1 oracle dba        7 Dec 11 11:58 /usr/local/sam/test.txt

but I just need the latest file name without extension:

test

Thanks
Sam

Last edited by Scott; 12-11-2012 at 01:23 PM.. Reason: Code tags
# 2  
Old 12-11-2012
Your point for doing this is what?

Code:
$ ls -ltr *.txt| sed "s/\.[^\.]*$//"

(*.txt is not the same as *txt)
# 3  
Old 12-11-2012
Using Scott's solution, you can add an awk statement to get latest file:-
Code:
ls -ltr | sed "s/\.[^\.]*$//" | awk ' { file=$NF; } END { print file; } '

This User Gave Thanks to Yoda For This Post:
# 4  
Old 12-11-2012
Why use -l (the 'ell' option) at all if all that's needed is the filename? In which case, tail (or head without the -r) would suffice (since $NF isn't guaranteed to give the whole filename anyway).
# 5  
Old 12-11-2012
Quote:
Originally Posted by Scott
Your point for doing this is what?

Code:
$ ls -ltr *.txt| sed "s/\.[^\.]*$//"

(*.txt is not the same as *txt)
You are correct , I just need file name without the .txt extension Your solution worked.

I need this to create a batch job that figures out the latest *.txt file name on the server in a specific directory.

Thanks
Sam

---------- Post updated at 01:39 PM ---------- Previous update was at 01:39 PM ----------

Quote:
Originally Posted by bipinajith
Using Scott's solution, you can add an awk statement to get latest file:-
Code:
ls -ltr | sed "s/\.[^\.]*$//" | awk ' { file=$NF; } END { print file; } '

bipinajith: Your solution works as I needed. Thanks
# 6  
Old 12-11-2012
You don't need -l to get sorted output, that's what -t does. Leaving it off makes everything simpler. Just match the first .txt, remove the extension, print, quit.

Code:
# Only run this code for lines ending in .txt
# Delete .txt
# Print the line
# exit without printing more lines

ls -t | awk '/[.]txt$/ { sub(/[.]txt/,""); print; exit }'


Last edited by Corona688; 12-11-2012 at 02:50 PM..
# 7  
Old 12-11-2012
what about this code? (...or did I miss something Smilie)
Code:
~/unix.com$ ls -t *.txt | awk 'NR==1&&gsub(/.txt$/,"")'

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Fetch the latest filename shell script

Hi I want to fetch the latest file form the list example example= filename RATE_STATE_SETUPS.20151222.ccyymmdd.hhmmss.txt File pick which have latest ccyymmdd.hhmmss list of file in directory are RATE_STATE_SETUPS.20151222.20151222.170101.txt... (5 Replies)
Discussion started by: MOHANP12
5 Replies

2. Shell Programming and Scripting

[BASH] Getting a filename its extension

Heyas As i often have decide things upon a filename its extension, i thought i'd write a script: Just wondering if there would be a more efficent way? out="" FN=$( echo "$1" | sed s," ","",g) # Remove any spaces and make it a single string for chance in $(echo "$FN"|sed s,"\."," ",g) # Use... (7 Replies)
Discussion started by: sea
7 Replies

3. Shell Programming and Scripting

Script to add extension to filename

Hi all, I have a folder with a bunch of files in them, and I would like to add an extension (.mp3)to all these filenames. The folder has only files that I'd like .mp3 added to. It looks something like this: Intput: File1 File2 File3Output: File1.mp3 File2.mp3 File3.mp3Thanks in... (2 Replies)
Discussion started by: repiv
2 Replies

4. Shell Programming and Scripting

removing the filename extension

Is there an easy way to strip off a filename's extension? For example, here's a filename: blahblahblah.thisisok.thisisnotok I want to get rid of .thisisnotok from the filename, so that what's left is blahblahblah.thisisok Thanks. I have a directory full of filenames that need to be... (5 Replies)
Discussion started by: daflore
5 Replies

5. Shell Programming and Scripting

Getting filename with entire path without extension

Hi Experts, need one help.. m writing a shell script for which i need the entire path of the file but without its extension. running the below script gives error at the statement DIR = `dirname $FILE` --command not found. #!/bin/bash jar xvf *jar for FILE in `find . -name "*.class"` ... (3 Replies)
Discussion started by: amicableperson
3 Replies

6. Shell Programming and Scripting

cut filename extension

I need a small script (sh) to remove in a variable the filename extension. Example: f = "testfile.txt" and I need a $a with "testfile". Some one a idea? (4 Replies)
Discussion started by: Essbaumer
4 Replies

7. UNIX for Dummies Questions & Answers

script takes the whole filename instead of just extension

I am running my script from "/abc/" this path and it has no ".csv files" but has a ".txt" files namely temp1.txt My script goes as below, wherein it is suppose to find files with *.txt extension and *.csv extension in another path namely "/abc/xyz/": #!/bin/ksh PATH1="/abc/xyz/" value="*.csv... (1 Reply)
Discussion started by: wolverine999
1 Replies

8. Shell Programming and Scripting

changing filename extension

Hi All, i need to change the filename extension. For simplicity, we can assume that the extension after '.' is 3 characters only... but the filenames can vary. eg. changing from abc.doc to abc.dxs can i have a oneline command to achieve this (3 Replies)
Discussion started by: Hiso
3 Replies

9. UNIX for Dummies Questions & Answers

get the latest file by reading the date in the filename.

Hi, I grep for a pattern in a list of files. "grep -i -l $pattern *.datx*" it may give me n number of files. say for eg, it gives me 2 files. lock_eicu_20071228_00000000.dat_20071228_05343100 lock_eicu_20080501_00000000.dat_20080501_05343900 out of these 2 files I need to get the... (7 Replies)
Discussion started by: prsshini
7 Replies

10. Shell Programming and Scripting

separating filename and extension

Hi (warning: newbie question), I am writing a script to run a series of tests on a program, which involves a line: for file in `ls test_suite/*.args` but later I want to send the output to file.out. But I need to separate the filename and extension somehow...Also $file contains... (2 Replies)
Discussion started by: lucaspewkas
2 Replies
Login or Register to Ask a Question