08-01-2008
As zaxxon already implied, you should show some effort to solve the problem yourself. We liek to help, but we dislike doing others works.
Having said this, it can be difficult to plan such a task, so here is, how you should work out your solution:
1) we observe, that a "date" is a structured entity: we expect one or two digits first, than a slash, then a string out of a fixed number of strings (the month), again a slash and then another four-digit number.
2) lets first check the simplest parts: are 2 slashes in the input? are they separating 3 strings? Are all the characters out of the set of characters we expect? (For instance, we expect only digits and the letters contained in month names. If the imput contains an "X" or a "?" we can conclude its illegal without further investigation. If the input looks like "...//..." (no 3 strings) we can conclude the same. All these checks can be done via simple sed scripts.
3) If the input passed this test(s), we can break it up into its parts and analyze them separately: a day number of "32" is certainly wrong, "31" might be right depending on the month and "29" (for February) might be wrong depending on the year.
4) When checking the month part you might want to translate "08" to "Aug" instead of rejecting it, the work is the same and it broadens the "input tolerance" of your script.
I think you got the drift now, so start with zaxxon has given to you (which is an excellent starting point, btw.) and work through these suggestions, then come back when you still need help. We'll be glad to support you with some details.
I hope this helps.
bakunin
10 More Discussions You Might Find Interesting
1. Programming
how do i validate y script so that it only accepts values between 1 and 3 and against any character input, cause at the moment i can only validate against numbers outside 1 and 3 but not characters
cheers (4 Replies)
Discussion started by: ruffenator
4 Replies
2. Shell Programming and Scripting
I am trying to validate input from the user in a script. I thought is was easy to do using regular expressions but I can't figure out how to use REs in a conditional. I have tried using grep from a temp file, sed from a temp file, sed from command line, comparison in an if condition and I cannot... (1 Reply)
Discussion started by: nrodolfich
1 Replies
3. Shell Programming and Scripting
Trying to create a script in BASH that would ask the user to enter another user name making sure the input is not blank before they hit enter then to check the home directory of that user does exist, I have the check folder sorted it's just the loop to make sure the user has entered chars (5 Replies)
Discussion started by: MBN
5 Replies
4. Shell Programming and Scripting
i have a input file like this
001|rahim|bajaj|20090102
while reading the file i need to check whether the first column is a number
second column is a name
is there any methodology to check for the same
thanks in advance (2 Replies)
Discussion started by: trichyselva
2 Replies
5. Shell Programming and Scripting
Hi all,
I have a shell script(K shell) which takes a date as input.
i want the input to be in DD-MM-YYYY format.
Can i enforce such a format of input string using just one line of code?
OR
do i need to parse the input date into different components and test them using Case statements... (2 Replies)
Discussion started by: rajugp1
2 Replies
6. UNIX for Dummies Questions & Answers
Yes, i did... let me state my problem in more detail
Inputs:
I have one input CSV file
And, i have stored no. of comma each line should in a variable.
e.g.
$ cat cmt.csv
this, is a ,comma ,count test1
,,this, is a ,comma ,count test2
this, is a ,comma ,count test3... (6 Replies)
Discussion started by: Dipali
6 Replies
7. Shell Programming and Scripting
Hi All,
I have tried to use ckdate (sun) command in script. It checks the input parameter which should be in 'YYYYMMDD format.
date=$( echo $1 | ckdate -f "%Y%m%d") | true
if ]
then
print " success"
else
print "no success"
fi
But in whatever format i pass the parameter,... (3 Replies)
Discussion started by: Amit.Sagpariya
3 Replies
8. UNIX for Dummies Questions & Answers
I'm trying to set up a script that takes user input and validates that the user input was entered correctly.
So far I have this:
while :
do
echo "Please enter your name."
read NAME
if
then
echo "You have not entered a name."
echo... (13 Replies)
Discussion started by: fufaso
13 Replies
9. Shell Programming and Scripting
how to check input date format.
for example $input_date must be in format dd.mm.gg
script is execute like this:
bin/script1.sh 14.12.2009
script1.sh code:
#!/bin/sh
input_date=$1
CMD="/app/si/test/test.sh $input_date"
echo "*****"
$CMD (2 Replies)
Discussion started by: waso
2 Replies
10. Shell Programming and Scripting
Hi all,
i had a code where in user will enter a date in yyyymmdd format.. i didnt use any validation for the date and now the problem is if a user enters date instead of month after year it is proceeding with the code..
like if the date is 20120426 and if the user enters 20122604 it... (4 Replies)
Discussion started by: smarty86
4 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)