Escaping special character stored in variables : perl
Hi
just for regular use i m working on small module written in perl for getting date in specified format like i have to specify date format and then seperator to seperate date i am 95% done. now i m sure explanation i gave is not good enough so i am putting output here :
Code:
C:\Documents and Settings\idc193577\Desktop>perl d.pl
Usage : d.pl <date_format> ['<seperator>']
Desc :
--> valid date_formats - dd # day of month ( 01 - 31 )
- ddd # 3 letter day name ( Mon Tue Wed ...)
- DD # full day name ( Monday )
- DDD # day of month and name in full ( 13 Friday )
- mm # month no ( 01 - 12 )
- mmm # 3 letter month name ( May Jun Jul ...)
- MM # full month name ( February )
- yy # last 2 digits of year ( 2009 -> 09 )
- yyyy # 4 digit year ( 2009 )
--> valid seperator - All Non Digits & Characters are valid.
*** P.S : Specify seperator within single quotes like ','
C:\Documents and Settings\idc193577\Desktop>perl d.pl ddmmyy
Input Format : ddmmyy | Seperator : [] | Output : [130209]
C:\Documents and Settings\idc193577\Desktop>perl d.pl ddd
Input Format : ddd | Seperator : [] | Output :[Fri]
C:\Documents and Settings\idc193577\Desktop>perl d.pl mmm
Input Format : mmm | Seperator : [] | Output [Feb]
C:\Documents and Settings\idc193577\Desktop>perl d.pl MM
Input Format : MM | Seperator : [] | Output : [February]
C:\Documents and Settings\idc193577\Desktop>perl d.pl yyyymmdd "/"
Input Format : yyyymmdd | Seperator : [/] | Output : [2009/02/13/]
now i can put anything as a seperator other than WORDS & NUMBERS this is where problem is coming look in above output last "/" in red is not required so i want to remove this and in code i am doing this as :
Code:
my $seperator = "$ARGV[1]" # which is "/"
my $result = "2009/02/13/" ; # hardcoded here
$result =~ s/${$seperator}$// ; # delete seperator which is at last but its not working i even tries escaping with \e${seperator} but did not work.
print $result ;
dear, I would like to rename files in a dir to another format, so I write a bash shell script to handle it. But my problem now is how to handle files having special characters like spaces, (, ):
"a b c (d).doc"
It seems that I need to escape those characters before applying the "mv" command.... (1 Reply)
Hi All,
In ksh script i'm trying to assign "sqlstmt1" varaible value,
update VAREntryTb set VAR10num = VAR1num * Mltplr where BusD = '$val1' and RunI = 1"`
Hence i wrote below statement, the issue with this is shell is expanding "*" character adn thus subistuting it with the content of my... (6 Replies)
Hi,
I am writing a Perl script that reads in many lines, if a line meets the criteria I want to edit, it. For example, the script will return the following example line... test=abc123
All I want to do is strip off the "test=" and just be left with the abc123. In my script I can easily... (3 Replies)
I'm running into a problem with a differential backup script written in GNU Bash 3.0 - the following stripped down code demonstrates the problem quite nicely.
$ DATE="last tuesday"
$ date --date="$DATE"
Tue Jan 6 00:00:00 PST 2009
So far so good.
$ CMD="date --date=\"$DATE\""
$... (6 Replies)
Hi All,
I am having a trouble in passing special characters to a script. As I am new to bash script I dont know how to go and solve this.
mypwd=(a+sdfg!h#
if i pass $mypwd to a bash script, it is not accepting "(,!,+ etc". It would be a great help if some one can help to escape these... (3 Replies)
All I'm trying to split a string at the $ into arrays
@data:=<dataFile>
a $3.33
b $4.44
dfg $0.56
The split command I have been playing with is:
split(/\$/, @data)
which results with
a .33 b .44 dfg .56
any help with this is appreciated
/r
Rick (9 Replies)
I want to append the following line to /var/spool/cron/root:
*/7 * * * * /root/'Linux CPU (EDF).sh' > /dev/null 2>&1
How to accomplish this using echo?
---------- Post updated at 04:09 PM ---------- Previous update was at 04:07 PM ----------
"Linux CPU (EDF)" is actually stored in a... (11 Replies)
I'm attempting a little hack to get grep to highlight (change foreground color to red) a found string. Assuming a target file "test" consisting of the word "albert":
My executable "algrep" consists of this:
grep $1 $2 | sed "s/$1/\\\033
And when run:
algrep al test
Produces this:... (2 Replies)
Hello
I have string (string can have more sections)
LINE="AA;BB;CC;DD;EE"I would like to assigne each part of string separated by ";" to some new variable.
Can someone help? (4 Replies)
Discussion started by: vikus
4 Replies
LEARN ABOUT MOJAVE
date::format
Date::Format(3) User Contributed Perl Documentation Date::Format(3)NAME
Date::Format - Date formating subroutines
SYNOPSIS
use Date::Format;
@lt = localtime(time);
print time2str($template, time);
print strftime($template, @lt);
print time2str($template, time, $zone);
print strftime($template, @lt, $zone);
print ctime(time);
print asctime(@lt);
print ctime(time, $zone);
print asctime(@lt, $zone);
DESCRIPTION
This module provides routines to format dates into ASCII strings. They correspond to the C library routines "strftime" and "ctime".
time2str(TEMPLATE, TIME [, ZONE])
"time2str" converts "TIME" into an ASCII string using the conversion specification given in "TEMPLATE". "ZONE" if given specifies the
zone which the output is required to be in, "ZONE" defaults to your current zone.
strftime(TEMPLATE, TIME [, ZONE])
"strftime" is similar to "time2str" with the exception that the time is passed as an array, such as the array returned by "localtime".
ctime(TIME [, ZONE])
"ctime" calls "time2str" with the given arguments using the conversion specification "%a %b %e %T %Y
"
asctime(TIME [, ZONE])
"asctime" calls "time2str" with the given arguments using the conversion specification "%a %b %e %T %Y
"
MULTI-LANGUAGE SUPPORT
Date::Format is capable of formating into several languages by creating a language specific object and calling methods, see Date::Language
my $lang = Date::Language->new('German');
$lang->time2str("%a %b %e %T %Y
", time);
I am open to suggestions on this.
CONVERSION SPECIFICATION
Each conversion specification is replaced by appropriate characters as described in the following list. The appropriate
characters are determined by the LC_TIME category of the program's locale.
%% PERCENT
%a day of the week abbr
%A day of the week
%b month abbr
%B month
%c MM/DD/YY HH:MM:SS
%C ctime format: Sat Nov 19 21:05:57 1994
%d numeric day of the month, with leading zeros (eg 01..31)
%e like %d, but a leading zero is replaced by a space (eg 1..32)
%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
%M minute, leading 0's
%n NEWLINE
%o ornate day of month -- "1st", "2nd", "25th", etc.
%p AM or PM
%P am or pm (Yes %p and %P are backwards :)
%q Quarter number, starting with 1
%r time format: 09:05:57 PM
%R time format: 21:05
%s seconds since the Epoch, UCT
%S seconds, leading 0's
%t TAB
%T time format: 21:05:57
%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
%X time format: 21:05:57
%y year (2 digits)
%Y year (4 digits)
%Z timezone in ascii. eg: PST
%z timezone in format -/+0000
%d, %e, %H, %I, %j, %k, %l, %m, %M, %q, %y and %Y can be output in Roman numerals by prefixing the letter with "O", e.g. %OY will output
the year as roman numerals.
LIMITATION
The functions in this module are limited to the time range that can be represented by the time_t data type, i.e. 1901-12-13 20:45:53 GMT to
2038-01-19 03:14:07 GMT.
AUTHOR
Graham Barr <gbarr@pobox.com>
COPYRIGHT
Copyright (c) 1995-2009 Graham Barr. This program is free software; you can redistribute it and/or modify it under the same terms as Perl
itself.
perl v5.18.2 2009-12-12 Date::Format(3)