HowtoForge Forums | HowtoForge - Linux Howtos and Tutorials

HowtoForge Forums | HowtoForge - Linux Howtos and Tutorials (http://www.howtoforge.com/forums/index.php)
-   Programming/Scripts (http://www.howtoforge.com/forums/forumdisplay.php?f=7)
-   -   Need help for writing shell script (http://www.howtoforge.com/forums/showthread.php?t=4493)

erez 24th May 2006 15:48

Need help for writing shell script
 
I need some help in writing a shell script, it basically need to delete all my older files , the file name structure is like that :

song100000732200506114828.3gp
song100000732200506124528.3gp
song100000732200506214528.3gp
.....................
.....

song constant prefix.
100000732 9 digits unique key [per msisdn]
200506114528 time stamp [DDMMYYHHMISS format]

The unique key is the same for each play list of specific msisdn.
The only thing that changes is the timestamp.


so i need for each unique key (there are more then one) the news file will remain


Can anyone help me?

thanks

EvanCarroll 11th June 2006 09:40

Quote:

Originally Posted by erez
I need some help in writing a shell script, it basically need to delete all my older files , the file name structure is like that :

song100000732200506114828.3gp
song100000732200506124528.3gp
song100000732200506214528.3gp
.....................
.....

song constant prefix.
100000732 9 digits unique key [per msisdn]
200506114528 time stamp [DDMMYYHHMISS format]

The unique key is the same for each play list of specific msisdn.
The only thing that changes is the timestamp.


so i need for each unique key (there are more then one) the news file will remain


Can anyone help me?

thanks

Do you need it in shell? Or can it be scripted in a real language.

erez 15th June 2006 17:11

i need it in a shell

g33k 16th June 2006 05:51

>> so i need for each unique key (there are more then one) the news file will remain

I don't get what exactly you want to do..May be you could have been more clear !!

Well the following script extracts each field (key and date-time) from the file name..

Code:

#!/bin/bash
ext=".3gp"        #put the file extension here

for f in *.3gp        #repeats of for each file in the directory       
do
        #extract the filename without extension
        base=`basename $f $ext`
        echo $base
       
        #extract the prefix
        pref=`echo $base | cut -c 5-13 -`
        echo $pref

        #extract date and time
        dtime=`echo $base | cut -c 14-25 -`
        echo $dtime
done


flim 16th June 2006 14:23

Quote:

Originally Posted by erez
I need some help in writing a shell script, it basically need to delete all my older files , the file name structure is like that :

song100000732200506114828.3gp
song100000732200506124528.3gp
song100000732200506214528.3gp

I assume you want to remove unused stuff older than X days. Instead of checking the timestamp within the filenames you could just do something like this:

find /my/directory -name song*3gp -ctime 50 -print| rm -f

which would delete everything min 50 days old

You can test that it picks the right files with something like:
find /my/directory -name song*3gp -ctime 50 -print| ls -l

Cheers
flim


All times are GMT +2. The time now is 14:30.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2014, vBulletin Solutions, Inc.