Visit The New, Modern Unix Linux Community


Script to rename file that was generated today and which starts with date


 
Thread Tools Search this Thread
Top Forums UNIX for Advanced & Expert Users Script to rename file that was generated today and which starts with date
# 1  
Script to rename file that was generated today and which starts with date

hello,

can someone please suggest a script to rename a file that was generated today and filename that being generated daily starts with date, its a xml file.

here is example.
Code:
[root@hostname sftpdata]# find . -type f -mtime -1
./20130529_4995733057260357019.xml
[root@hostname sftpdata]#

this finename should be renamed to this format.
renamedfeed_20130529.xml

Thanks,

Last edited by radoulov; 06-03-2013 at 10:24 AM..
# 2  
Here is one way of doing it:
Code:
c=$( find . -name "*.xml" -type f -mtime -1 | tee tmp | wc -l )

if [ $c -eq 1 ]
then
        file=$( cat tmp )
        mv "$file" "renamedfeed_$(date +%Y%m%d).xml"
fi

# 3  
In case you are not aware, -mtime -1 is not constrained to "a file that was generated today." It will match anything that's less than 24 hours old, which usually includes a portion of yesterday.

If the file must have been created on the current calendar day, perhaps you'd be better off using the date command to generate a filename pattern argument for the -name primary.

Regards,
Alister
# 4  
Thanks for your reply.

I just tried this format, but not working, please suggest here

Code:
$ ls -lrt
total 168
-rw-r----- 1 z504783 ctlab_admin 166593 May 29 10:17 20130529_4995733057260357019.xml
$
$ file =$(`find . -name `date +%Y%m%d`_*.xml`) ; mv $file renamedfeed_`date +%Y%m%d`.xml
find: missing argument to `-name'
-bash: _*.xml: command not found
=20130529: ERROR: cannot open `=20130529' (No such file or directory)
mv: missing destination file operand after `renamedfeed_20130529.xml'
Try `mv --help' for more information.
$


Last edited by radoulov; 06-03-2013 at 10:24 AM..
# 5  
Quote:
Originally Posted by bobby320
Thanks for your reply.

I just tried this format, but not working, please suggest here

Code:
$ ls -lrt
total 168
-rw-r----- 1 z504783 ctlab_admin 166593 May 29 10:17 20130529_4995733057260357019.xml
$
$ file =$(`find . -name `date +%Y%m%d`_*.xml`) ; mv $file


There should be no space after file, and you don't need both $( ... ) and ` ... `.
Code:
date=$(date +%Y%m%d)
file=$(find . -name "$date"_*.xml)
mv "$file" renamedfeed_"$date".xml

This User Gave Thanks to cfajohnson For This Post:
# 6  
I changed the format of the scirpt, and added to crontab its not working, I see this error on the cron logs

someone please suggest.
Code:
#crontab -e
30 16 * * * mv $(find /data/sftp -name `date +%Y%m%d`_*.xml) Partner_`date +%Y_%m_%d.%H-%M-%S`.xml
#
#tail -f /var/log/cron
Jul 26 16:30:01 crond[20857]: (root) CMD (mv $(find /data/sftp -name `date +)
Jul 26 16:30:01 crond[20858]: (root) CMD (/usr/lib64/sa/sa1 1 1)

Thanks,
# 7  

In a crontab, percent signs must be escaped.

Previous Thread | Next Thread
Thread Tools Search this Thread
Search this Thread:
Advanced Search

Test Your Knowledge in Computers #171
Difficulty: Medium
IBM acquired Red Hat for $34 billion USD.
True or False?

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Compare Date to today's date in shell script

Hi Community! Following on from this code in another thread: #!/bin/bash file_string=`/bin/cat date.txt | /usr/bin/awk '{print $5,$4,$7,$6,$8}'` file_date=`/bin/date -d "$file_string"` file_epoch=`/bin/date -d "$file_string" +%s` now_epoch=`/bin/date +%s` if then #let... (2 Replies)
Discussion started by: Greenage
2 Replies

2. Shell Programming and Scripting

Need to write a shell script that starts one, then kills it, then starts another?

This is on a CentOS box, I have two scripts that need to run in order. I want to write a shell script that calls the first script, lets it run and then terminates it after a certain number of hours (that I specify of course), and then calls the second script (they can't run simultaneously) which... (3 Replies)
Discussion started by: btramer
3 Replies

3. Shell Programming and Scripting

Need to add a date column (today's date) in file

Hi I have file with number status and date1 and date1 field, want add a column today between column date1 and date2. file1.txt number status date1 date2 ===== ==== === ===== 34567 open 27/06/13 28/06/13 45678 open 27/06/13 28/06/13 43567 open 27/06/13 28/06/13 ... (1 Reply)
Discussion started by: vijay_rajni
1 Replies

4. Shell Programming and Scripting

Files generated today

I would like to find the Files which are generated today in the current directory: I use the commad ls -lrt * | egrep " `date "+%b"` * `date "+%d"` to acheive this. Is there any better way to acquire the same. Multiple answers will be great. Thanks (3 Replies)
Discussion started by: kusathy
3 Replies

5. Shell Programming and Scripting

Calculate 30/31 days from today date script

Hi Guys, I was working some time ago n was in need to calculate date 30/31 days from today including Feb (Leap yr stuff). Today date is variable depending on day of execution of script. I tried searching but was not able to get exactly what I needed....So at that I time I implemented by my own... (3 Replies)
Discussion started by: coolgoose85
3 Replies

6. Shell Programming and Scripting

Script to copy log files with today's date

I am a newbie to scripting. I need a korn shell script to copy log files of current day to archive folder and rename with current days date stamp. I would really appreciate your help. File structure is as follows. Everyday files get overwritten, so I need copy to a archive directory and... (3 Replies)
Discussion started by: mdncan
3 Replies

7. UNIX for Dummies Questions & Answers

How to list all the files which are not generated today

How to list all the files which are not generated today, and move all the above files to backup dir. (2 Replies)
Discussion started by: redlotus72
2 Replies

8. UNIX for Dummies Questions & Answers

compare today's date with date in a file

Hi I am very new to scripting, Can someone show me how to (in unix shell script) compare the system's date with a date in a file. The requirement is to somehow open this file (which will only have a date in it) and compare it with today's date. If they are equal execute a procedure below but if... (4 Replies)
Discussion started by: siog
4 Replies

9. Shell Programming and Scripting

Need a script to Append date to generated .txt file

Hi, Can anyone plz share their experience with - Building shell script to append the file with date in following format- Filename_MMDDYYYY.txt Thanks in advance (2 Replies)
Discussion started by: prince_of_focus
2 Replies

10. Shell Programming and Scripting

Automatically Rename Last Generated File

I'm trying to rename the last generated file in a given directory using a makefile. If I type 'make build' the 'build' target produces a file (ie: text_001.txt). It automatically generates them sequentially, so I don't have control over the name. I can't say that it will always be text_001.txt.... (2 Replies)
Discussion started by: pieter023
2 Replies

Featured Tech Videos