Appending time stamp for multiple file

 
Thread Tools Search this Thread
Top Forums UNIX for Beginners Questions & Answers Appending time stamp for multiple file
# 1  
Old 05-26-2017
Appending time stamp for multiple file

Hi All,

I am trying to append time stamp to all file with wild character.


Quote:
FINANCE_001.def
FINANCE._001dat
TRANSACTION_001.def
TRANSACTION_001.dat
ACCOUNT_001.def
ACCOUNT_001.dat
SECTOR_001.def
SECTOR_001.dat
MOVEMENT_001.def
MOVEMENT_001.dat
If you look above I want take all file with wild card *001* and append current time stamp to it.

I did below code. But not sure if there is any easy way that can be done in a single step

Code:
a=date +%s
for i in $(ls -l  *_001*); do
 mv $i $i_$a
done

Thanks
Arun
# 2  
Old 05-26-2017
Without knowing what operating system and shell you're using we might be able to make lots of suggestions that can't possibly work in your environment.

Setting a the way you are gives it a value that is the literal string date +%s; not to a value that is the output produced by running that date command. Using the ls command substitution is unnecessary, slows down your script, makes it vulnerable to failure in directories with lots of files or with lots of long filenames, and will fail when given filenames containing IFS characters. Consider replacing your script with:
Code:
a=$(date +%s)
for i in *_001*
do	mv "$i" "$i_$a"
done

to get rid of those problems.
This User Gave Thanks to Don Cragun For This Post:
# 3  
Old 05-27-2017
Thanks for your reply. I am using redhat linux and trying to do it in shell script . If there is a one liner awk or sed it will be very helpfull
# 4  
Old 05-27-2017
I have given you a four line shell script that you can easily convert to a one line shell script if you want to make it harder to read, harder to understand, and harder to maintain. I much prefer to write code that is easier to read, easier to understand, and easier to maintain. Adding awk or sed to this script is certainly something you can do if you want to make this script run slower. But, of course, you still haven't told us what shell you're using, so the code I suggested could just give you a syntax error instead of doing anything at all close to what you want.

If you're using a shell that meets the requirements for the sh utility specified by the POSIX standard, you could modify the code I suggested to use awk, cat, cp, ed, ex, pr, sed, and probably several other utilities to copy your input files to the new names and then use rm or unlink to remove the old names (copying the data instead of just renaming the files, breaking links instead of maintaining them, and failing terribly for files that are not regular files instead of working for all file types). You could use pax to rename files while copying them. And, since you're on a system with GNU utilities, your best bet would probably be to try using the rename utility.

If rename won't work for you, you need to come up with a very good explanation as to why you would want to use awk or sed to move files instead of using the mv utility whose sole purpose is to move files.
This User Gave Thanks to Don Cragun For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Copying multiple files and appending time stamp before file extension

Hi, I have multiple files that read: Asa.txt Bad.txt Gnu.txt And I want to rename them using awk to Asa_ddmmyytt.txt and so on ... If there is a single command or more efficient executable please share! Thanks! (4 Replies)
Discussion started by: Jesshelle David
4 Replies

2. Shell Programming and Scripting

Capturing time stamp in file name

I have a file that is created via a perl script where the file is named like so: 01-07-2016_10:17:08. I am running a shell script that needs to take this file and print it. I can capture the date portion fine, but I am unsure how to capture the time stamp, since there will be a difference from what... (1 Reply)
Discussion started by: ldorsey
1 Replies

3. Shell Programming and Scripting

Check file time stamp

Hi, I need help to read file in a directory on basis of time stamp. e.g. If file access in last 2 minutes it should not be copy to remote directory. Below is my script. #!/bin/ksh DATE=`date +"%Y-%m-%d_%H%M"` SEPARATER=" " exec < out_interfaces.cfg while read source_path... (10 Replies)
Discussion started by: qamar.alam
10 Replies

4. Shell Programming and Scripting

file time stamp

Hi All, I am facing small problem. i want to print file time stamp on which date file has placed in the server. i have given some code but its not giving the year. any help appreciated. regards rajesh. (4 Replies)
Discussion started by: rajesh_pola
4 Replies

5. Shell Programming and Scripting

creating a file with time stamp

Hi guys, Here my scenario is to find the files of previous days if the previous day load had not done. for that i created a file with time stamp and this file is created after the load completes. so every dau i search for the this file with previous days time stamp. i want to create a file... (1 Reply)
Discussion started by: apple2685
1 Replies

6. Shell Programming and Scripting

Change time stamp of a file

Hi, As i know , we can change the time stamp of a file by touch command, i did change in a file and it is looking as given # ls -l abcd -rw-r--r-- 1 batsoqa sicusers 0 Feb 17 2010 abcd actually i want to see the output like this -rw-r--r-- 1 batsoqa sicusers ... (3 Replies)
Discussion started by: apskaushik
3 Replies

7. Shell Programming and Scripting

change the time stamp of file

can we change the timestamp of a file to old date. -rwxrwxrwx 1 root other 330 Jul 1 16:03 abc.txt it shows creation time is 16.03 can i change it to previous time :) (2 Replies)
Discussion started by: anish19
2 Replies

8. Shell Programming and Scripting

how do i put a time stamp in a file name

i want to copy a filea.dat to a file name in the format of filea_yyyymmdd_hhmi.dat using something like DTSTAMP=$(date "+%Y%m%d"), which puts it in format filea_yyyymmdd.dat (5 Replies)
Discussion started by: jhamm
5 Replies

9. UNIX for Dummies Questions & Answers

time stamp of file create

Hi, Sounds a simple request but I also need (would like) to gather the seconds too. I'm not even sure if this is held. I would think it is, somewhere??!!?! I belive that stat would/could work but I don't do C (we'll not yet). Is there any comamnd line util I can use? SunOS. Cheers... (7 Replies)
Discussion started by: nhatch
7 Replies

10. UNIX for Dummies Questions & Answers

File date and time stamp

I have to capture the creation date and time stamp for a file. The ls command doesn't list all the required information. I need year, month, day, hour, minute and second. Any ideas... (1 Reply)
Discussion started by: Xenon
1 Replies
Login or Register to Ask a Question