Sponsored Content
Full Discussion: move file by year/mouth
Top Forums Shell Programming and Scripting move file by year/mouth Post 302227324 by mmm951 on Thursday 21st of August 2008 04:05:22 AM
Old 08-21-2008
I write script do this job.
any one has better advise!?

Code:
#!/bin/ksh
sdir=/tmp/mars
sedarg=s/[0-9][0-9]:[0-9][0-9]/`date +%Y`/g
mouth=0
while [ $mouth -le 11 ]
do
 mouth=`expr $mouth + 1`
 for yeardir in `ls -lt $sdir | sed -e $sedarg | grep ^- |awk '{print $8}' |uniq`
   do
	if [[ -d $sdir/$yeardir/$mouth ]] ;then
		echo $sdir/$yeardir/$mouth is exist
	else 
		mkdir -p $sdir/$yeardir/$mouth
		echo create $sdir/$yeardir/$mouth ok!!
	fi
   done
 done

#move file
ls -lt $sdir | sed -e $sedarg | grep ^- |awk '{print $6"\t"$8"\t"$NF}'  >$$.out
exec < $$.out
while read F_MOUTH F_YEAR FILE_NAME
do
  case "$F_MOUTH" in
        Jan) mv $sdir/$FILE_NAME $sdir/$F_YEAR/1;;
        Feb) mv $sdir/$FILE_NAME $sdir/$F_YEAR/2;;
        Mar) mv $sdir/$FILE_NAME $sdir/$F_YEAR/3;;
        Apr) mv $sdir/$FILE_NAME $sdir/$F_YEAR/4;;
        May) mv $sdir/$FILE_NAME $sdir/$F_YEAR/5;;
        Jun) mv $sdir/$FILE_NAME $sdir/$F_YEAR/6;;
        Jul) mv $sdir/$FILE_NAME $sdir/$F_YEAR/7;;
        Aug) mv $sdir/$FILE_NAME $sdir/$F_YEAR/8;;
        Sep) mv $sdir/$FILE_NAME $sdir/$F_YEAR/9;;
        Oct) mv $sdir/$FILE_NAME $sdir/$F_YEAR/10;;
        Nov) mv $sdir/$FILE_NAME $sdir/$F_YEAR/11;;
        Dec) mv $sdir/$FILE_NAME $sdir/$F_YEAR/12;;
  esac
done
rm $$.out


Last edited by mmm951; 08-21-2008 at 08:24 AM..
 

7 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How do i get the year of the file

When i use, 'ls -ltr' I only see the month and day (timestamp) of the file. How do i see the year also. Thanks and Regards, Ram (1 Reply)
Discussion started by: ramky79
1 Replies

2. UNIX for Dummies Questions & Answers

Move files based on year

I have a directory which has crores of files since from 2003. I want to move only the 2003 files to another directory. Please help in doing this. Thanks (1 Reply)
Discussion started by: IHK
1 Replies

3. Shell Programming and Scripting

Move files based on year of creation

Hi All, I have a directory which has crores of files since from 2003 till now. I want to move only the 2003 files to another directory. Please help. Thanks (2 Replies)
Discussion started by: IHK
2 Replies

4. UNIX for Dummies Questions & Answers

Move files based on year

Hi All, I have a directory which has crores of files since from 2003. I want to move ony the 2003 files to another directory. Please help (9 Replies)
Discussion started by: IHK
9 Replies

5. UNIX for Dummies Questions & Answers

move all 2008 year's file to destination directory

I am trying to move file created/modified in 2008 year to <new directory>. But trapped badly in Xargs {}. Looks like mv is not getting destination file properly. It assumes source file s to be destination directory n gives me erroir. "Target must be a directory" Run- #/home/mktrisk: find... (4 Replies)
Discussion started by: kedar.mehta
4 Replies

6. Shell Programming and Scripting

File created year

Hi I need to get the File creation date (MM,DD,YYYY) using ls -ltr am getting only Month and Day only, I need year also when the file is modified. Thanks (3 Replies)
Discussion started by: KiranKumarKarre
3 Replies

7. Red Hat

Move files of a certain year to other directory

Hi all, I have a massive amount of recording files in .WAV format stored in a directory, files dating back to 2006. It is a huge amount of files as Linux cannot even do a listing of it all, it states: "argument list too long" What I would like to do is the following: Find all the files of... (6 Replies)
Discussion started by: codenjanod
6 Replies
LaTeXML::Mouth(3pm)					User Contributed Perl Documentation				       LaTeXML::Mouth(3pm)

NAME
"LaTeXML::Mouth" - tokenize the input. DESCRIPTION
A "LaTeXML::Mouth" (and subclasses) is responsible for tokenizing, ie. converting plain text and strings into LaTeXML::Tokens according to the current category codes (catcodes) stored in the "LaTeXML::State". "LaTeXML::FileMouth" specializes "LaTeXML::Mouth" to tokenize from a file. "LaTeXML::StyleMouth" further specializes "LaTeXML::FileMouth" for processing style files, setting the catcode for "@" and ignoring comments. "LaTeXML::PerlMouth" is not really a Mouth in the above sense, but is used to definitions from perl modules with exensions ".ltxml" and ".latexml". Creating Mouths "$mouth = LaTeXML::Mouth->new($string);" Creates a new Mouth reading from $string. "$mouth = LaTeXML::FileMouth->new($pathname);" Creates a new FileMouth to read from the given file. "$mouth = LaTeXML::StyleMouth->new($pathname);" Creates a new StyleMouth to read from the given style file. Methods "$token = $mouth->readToken;" Returns the next LaTeXML::Token from the source. "$boole = $mouth->hasMoreInput;" Returns whether there is more data to read. "$string = $mouth->getLocator($long);" Return a description of current position in the source, for reporting errors. "$tokens = $mouth->readTokens($until);" Reads tokens until one matches $until (comparing the character, but not catcode). This is useful for the "verb" command. "$lines = $mouth->readRawLines($endline,$exact);" Reads raw (untokenized) lines from $mouth until a line matching $endline is found. If $exact is true, $endline is matched exactly, with no leading or trailing data (like in the c<comment> package). Otherwise, the match is done like with the c<verbatim> environment; any text preceding $endline is returned as the last line, and any characters after $endline remains in the mouth to be tokenized. AUTHOR
Bruce Miller <bruce.miller@nist.gov> COPYRIGHT
Public domain software, produced as part of work done by the United States Government & not subject to copyright in the US. perl v5.10.1 2009-06-11 LaTeXML::Mouth(3pm)
All times are GMT -4. The time now is 10:59 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy