11-23-2009
Done
Anyone interested here is my script.
#!/bin/bash
cd ~/tst2
## set variable year_dir as first year
year_dir=2007
## checks dir exists and is a directory and into FIRST LOOP
while [ -d "$year_dir" ] && [ "$year_dir" -le 2010 ]
do
cd $year_dir
YEAR=`basename $PWD` ;echo "YEAR IS "$YEAR
## list all directories and into SECOND LOOP
for month_dir in `ls -d *`
do
cd $month_dir
MONTH=`basename $PWD | awk '{printf "%02i",substr($0,length($0)-1)}'` ;echo "MONTH IS "$MONTH
## lists all single char directories,i.e. 1 to 9 and into THIRD LOOP
for day_dir_1char in `ls -d [1-9]`
do
echo "mv "$day_dir_1char" 0"$day_dir_1char
mv $day_dir_1char 0$day_dir_1char
done
## exit THIRD LOOP
## list all two char dirs and rename all days (all in 2 char format). in to FOURTH LOOP
for day_dir_2char in `ls -d [0-3][0-9]`
do
echo "mv $day_dir_2char to "$YEAR"_"$MONTH"_"$day_dir_2char
mv $day_dir_2char $YEAR\_$MONTH\_$day_dir_2char
done
## exit FOUTH LOOP
cd ..
echo "mv $month_dir to "$YEAR"_"$MONTH
mv $month_dir $YEAR\_$MONTH
# echo "cmv "$month_dir $YEAR"_"$MONTH
# DAY=`basename $PWD`; echo "DAY IS "$DAY
done
let year_dir=$year_dir+1
cd ..
done
9 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
I'm working on a project that basically unzips three zip files.
When these unzip they create about 70+ directories with subdirectories of year/month with about 3 to 9 pdf files in each directory.
Basically, I'm needing to figure out a way to zip these pdf files up.
for instance the script... (1 Reply)
Discussion started by: Aixia
1 Replies
2. Shell Programming and Scripting
Basically, I have a huge amount of files (ripped audiobooks) that all have the same garbage in their filenames. I'm wondering how to go about writing a bash script to mass rename them. Example filenames as they stand now:
The First CD - 1x01 - Title 1.mp3
The First CD - 1x02 - Title 2.mp3... (4 Replies)
Discussion started by: audiophile
4 Replies
3. UNIX for Dummies Questions & Answers
Hi.
I don't have any experience with making scripts in bash. I need a simple script to rename all files in a folder to the format file1.avi, file2.avi, file3.avi, and so on.....
Please note that the original files have different filenames and different extensions. But they all need to be... (2 Replies)
Discussion started by: dranzer
2 Replies
4. UNIX for Dummies Questions & Answers
Dear friends,
I have created a script to rename all files in a directory by appending the file name with username (who created the file), the date it was created. For example, "apple.doc" should be renamed to "johnFeb23apple.doc" where "john" is the owner and "Feb23" is file created date. It... (4 Replies)
Discussion started by: djsnifer
4 Replies
5. UNIX for Dummies Questions & Answers
I am trying to create a script that will search for a directory named bob, and then rename that directory to peter. I do not want the directory path to change.
so /folders/bob
would become /folders/peter
It seems to be renaming the bob folder to peter correctly, but the peter folder ends... (2 Replies)
Discussion started by: gumby456m
2 Replies
6. Shell Programming and Scripting
HI,
I have a file serverlist in that all host names are placed.
i have written a small script
#./testping
#! /bin/bash
for i in `cat serverlist`
do
ping $i >> output.txt
done
so now it creates a file output.txt till here fine..
now each time i run this script the output file... (4 Replies)
Discussion started by: madhudeva
4 Replies
7. UNIX for Dummies Questions & Answers
Hi,
I want to rename several files like this:
example:
A0805120817.BHN
A0805120818.BHN
.....
to:
20120817.0805.N
20120818.0805.N
......
How can i do this via terminal or in shell bash script ?
thanks, (6 Replies)
Discussion started by: pintolcv
6 Replies
8. Shell Programming and Scripting
I am trying to merge or combine all $1 values in validation.txt from multiple directories into one new file and output it here tab-delimited:/home/cmccabe/Desktop/20x/total/total.txt. Each $2 value and the header would then be a new field in total.txt. I am not sure how to go about this as cat is... (2 Replies)
Discussion started by: cmccabe
2 Replies
9. Shell Programming and Scripting
Hi,
Friends, i have a requirement where i need to rename my files residing in multiple sub directories and move them to one different directory along with some kind of directory indicator.
For eg:
test--is my parent directory and it has many files such as
a1.txt
a2.txt
a3.txt
... (5 Replies)
Discussion started by: gnnsprapa
5 Replies
LEARN ABOUT DEBIAN
chewmail
CHEWMAIL(1) User Contributed Perl Documentation CHEWMAIL(1)
NAME
chewmail - mail archiver
SYNOPSIS
chewmail [OPTIONS] <MAILBOX> ...
DESCRIPTION
chewmail is a program for archiving mail. It is inspired by the by the Python-based archivemail, but with more useful semantics. All mail
is archived to the mailbox specified with the --output-box switch, in mbox format. It can read mailboxes in mbox, Maildir and MH formats.
Internally, chewmail uses Mail::Box, so it support file names and URLs supported by that module.
OPTIONS
-o mailbox-format, --output-box=mailbox-format
The mailbox to archive messages to. The mailbox is run through the Date::Format module, so it supports all it's conversion specifiers.
The date and time is relative to the messages timestamp, or the current time if the timestamp is impossible to determine. A sample of
the conversion specifiers follows:
%% PERCENT
%b month abbr
%B month
%d numeric day of the month, with leading zeros (eg 01..31)
%e numeric day of the month, without leading zeros (eg 1..31)
%D MM/DD/YY
%G GPS week number (weeks since January 6, 1980)
%h month abbr
%H hour, 24 hour clock, leading 0's)
%I hour, 12 hour clock, leading 0's)
%j day of the year
%k hour
%l hour, 12 hour clock
%L month number, starting with 1
%m month number, starting with 01
%n NEWLINE
%o ornate day of month -- "1st", "2nd", "25th", etc.
%t TAB
%U week number, Sunday as first day of week
%w day of the week, numerically, Sunday == 0
%W week number, Monday as first day of week
%x date format: 11/19/94
%y year (2 digits)
%Y year (4 digits)
-d days-old, --days=days-old
Only archive messages older than than this many days.
-D date, --date=date
Only archive messages old than this date. The date can be any date understood by Perl's Date::Parse module.
-R, --only-read
Only archive messages that are marked seen or read.
--delete-immediately
Synchonize the mailboxes after every message is moved. This will be substantially slower but may provide better recovery for some mail-
box formats in the event of a crash.
--preserve-timestamp
Preserve the atime and mtime of the input mailbox. This only affects file-based mailboxes, such as mbox.
-n, --dry-run
Go through all the motions of archiving the mail, but don't actually change any mailboxes.
-v, --verbose
Output more informational messages. Use multiple times for more verbosity.
-q, --quiet
Don't output any messages other than error messages.
-V, --version
Print the version number then exit.
-h, --help
Print usage information then exit.
EXAMPLES
Archive two day old messages in inbox to inbox-old:
chewmail --days 2 -o inbox-old inbox
Archive read messages to a mailbox named the year-month of the message:
chewmail --only-read -o %Y-%m inbox
SEE ALSO
archivemail(1), Date::Parse, Date::Format, Mail::Box
AUTHOR
Eric Dorland <eric@kuroneko.ca>
perl v5.8.8 2006-08-15 CHEWMAIL(1)