Sponsored Content
Top Forums Shell Programming and Scripting How to find the count and replace the particular part of string in perl? Post 302439976 by vanitham on Sunday 25th of July 2010 11:24:02 AM
Old 07-25-2010
How to find the count and replace the particular part of string in perl?

Hi,

I am taking the current time using localtime function in perl. For example if the time is:
Code:
#Using localtime

$time = "12:3:10";

I have to replace the value 3 (03) i.e second position to be 03.

The output should be:
Code:
12:03:10

But if the other string for example:
Code:
$str: "12:45:90";

The above code should not get replaced i.e 45 should not be 045.

The output should be:
Code:
12:45:90

How to get the above outputs?

The string should get replaced only if second position is single (3 to 03) otherwise not.

How to do the replacements in perl?

Regards
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

using sed to replace a part of string

Hi, I have files that are named front1.txt to front999.txt. They are all in the same directory. To change "front" to "back", I am doing something like this. for file in *.txt; do new=`echo $file | sed 's/^**/back/g'` mv $file $new done My problem is what if files are named... (6 Replies)
Discussion started by: csejl
6 Replies

2. UNIX for Dummies Questions & Answers

regarding replace a part of a string

hi all. i have a file name like abcd_vbnh.a_p i have to copy it as abcd_vbnh.a every time... in unix not in perl please (7 Replies)
Discussion started by: madhu_aqua14
7 Replies

3. UNIX for Dummies Questions & Answers

replace part of single string in a file

hi! i have a file consisting of the following lines: (BTW, = space) . . . 12ME_T1mapping_flip30bshortf 13DCE_whole_brainbshortf 13DCE_3Dbshortf . . . the list of scans starts at 1 and goes on sometimes up to 60 scans. i would like to change only the lines that contain 'whole' to... (2 Replies)
Discussion started by: nixjennings
2 Replies

4. Shell Programming and Scripting

Find & Replace string in multiple files & folders using perl

find . -type f -name "*.sql" -print|xargs perl -i -pe 's/pattern/replaced/g' this is simple logic to find and replace in multiple files & folders Hope this helps. Thanks Zaheer (0 Replies)
Discussion started by: Zaheer.mic
0 Replies

5. UNIX for Dummies Questions & Answers

Seach for part of string and replace whole word

I am trying to find words in a text with a certain ending with sed and replace them with themselves but wrapped in tabs ex.: The fish swims in the water. -> searching for -ms ending The fish <tab>swims<tab>in the water. I've been trying all sorts of commands and get either an error... (5 Replies)
Discussion started by: stinnes
5 Replies

6. Shell Programming and Scripting

Replace a part of the string

Hi I need to Replace a part of string in between one complete string. For e.g.. in the file the value is as: jobnm_$code_xyz_001 In script we are having a variable code=$3, where $3=ab final output should be jobnm_ab_xyz_001. But it is not working. Your help will be... (1 Reply)
Discussion started by: vee_789
1 Replies

7. Shell Programming and Scripting

SED - replace only on part of the string

Hello there, I need some help. I have a file containing this : $ cat file PARM1=(VAL11),PARM2=(VAL21,VAL22,VAL23),PARM3=(VAL31),PARM4=(VAL41,VAL42) and I need to replace all the ',' by '|' but only those which are between brackets. Output would be :... (10 Replies)
Discussion started by: Sephiburp
10 Replies

8. Shell Programming and Scripting

Perl script to read string from file#1 and find/replace in file#2

Hello Forum. I have a file called abc.sed with the following commands; s/1/one/g s/2/two/g ... I also have a second file called abc.dat and would like to substitute all occurrences of "1 with one", "2 with two", etc and create a new file called abc_new.dat sed -f abc.sed abc.dat >... (10 Replies)
Discussion started by: pchang
10 Replies

9. Shell Programming and Scripting

find and Replace String in Perl - Regexp

Trying to find and replace one string with another string in a file #!/usr/bin/perl $csd_table_path = "/file.ntab"; $find_str = '--bundle_type=021'; $repl_str = '--bundle_type=021 --target=/dev/disk1s2'; if( system("/usr/bin/perl -p -i -e 's/$find_str/$repl_str/' $csd_table_path")... (2 Replies)
Discussion started by: cillmor
2 Replies

10. Shell Programming and Scripting

How to replace part of string?

Hi Gurus, I need to replace part of string in file, the string format is below: I can use ABCD to find string, then replace values after "=" sign ABCD_XXX=value ABCD_YYY=value after replace ABCD_XXX=new_value ABCD_YYY=new_value my OS is SunOS 5.10 Generic_150400-64 sun4v sparc sun4v ... (9 Replies)
Discussion started by: green_k
9 Replies
Time::Fake(3pm) 					User Contributed Perl Documentation					   Time::Fake(3pm)

NAME
Time::Fake - Simulate different times without changing your system clock SYNOPSIS
Pretend we are running 1 day in the future: use Time::Fake '+1d'; Pretend we are running 1 year in the past: use Time::Fake '-1y'; Pretend the script started at epoch time 1234567: use Time::Fake 1234567; See what an existing script would do if run 20 years in the future: % perl -MTime::Fake="+20y" test.pl Run a section of code in a time warp: use Time::Fake; # do some setup Time::Fake->offset("+1y"); run_tests(); # thinks it's a year ahead Time::Fake->reset; # back to the present DESCRIPTION
Use this module to achieve the effect of changing your system clock, but without actually changing your system clock. It overrides the Perl builtin subs "time", "localtime", and "gmtime", causing them to return a "faked" time of your choice. From the script's point of view, time still flows at the normal rate, but it is just offset as if it were executing in the past or present. You may find this module useful in writing test scripts for code that has time-sensitive logic. USAGE
Using and importing: use Time::Fake $t; Is equivalent to: use Time::Fake; Time::Fake->offset($t); See below for arguments to "offset". This usage makes it easy to fake the time for existing scripts, as in: % perl -MTime::Fake=+1y script.pl offset Time::Fake->offset( [$t] ); $t is either an epoch time, or a relative offset of the following form: +3 # 3 seconds in the future -3s # 3 seconds in the past +1h # 1 hour in the future etc.. Relative offsets must begin with a plus or minus symbol. The supported units are: s second m minute h hour d day (24 hours) M month (30 days) y year (365 days) If $t is an epoch time, then "time", "localtime", and "gmtime" will act as though the the current time (when "offset" was called) was actually at $t epoch seconds. Otherwise, the offset $t will be added to the times returned by these builtin subs. When $t is false, "time", "localtime", "gmtime" remain overridden, but their behavior resets to reflect the actual system time. When $t is omitted, nothing is changed, but "offset" returns the current additive offset (in seconds). Otherwise, its return value is the previous offset. "offset" may be called several times. However, The effect of multiple calls is NOT CUMULATIVE. That is: Time::Fake->offset("+1h"); Time::Fake->offset("+1h"); ## same as # Time::Fake->offset("+1h"); ## NOT the same as # Time::Fake->offset("+2h"); Each call to "offset" completely cancels out the effect of any previous calls. To make the effect cumulative, use the return value of calling "offset" with no arguments: Time::Fake->offset("+1h"); ... Time::Fake->offset( Time::Fake->offset + 3600 ); # add another hour reset Time::Fake->reset; Is the same as: Time::Fake->offset(0); That is, it returns all the affected builtin subs to their default behavior -- reporing the actual system time. KNOWN CAVEATS
Time::Fake must be loaded at "BEGIN"-time (e.g., with a standard "use" statement). It must be loaded before perl compiles any code that uses "time", "localtime", or "gmtime". Due to inherent limitations in overriding builtin subs, any code that was compiled before loading Time::Fake will not be affected. Because the system clock is not being changed, only Perl code that uses "time", "localtime", or "gmtime" will be fooled about the date. In particular, the operating system is not fooled, nor are other programs. If your Perl code modifies a file for example, the file's modification time will reflect the actual (not faked) time. Along the same lines, if your Perl script obtains the time from somewhere other than the affected builtins subs (e.g., "qx/date/"), the actual (not faked) time will be reflected. Time::Fake doesn't affect -M, -A, -C filetest operators in the way you'd probably want. These still report the actual (not faked) script start time minus file access time. Time::Fake has not been tested with other modules that override the time builtins, e.g., Time::HiRes. SEE ALSO
Time::Warp, which uses XS to fool more of Perl. AUTHOR
Time::Fake is written by Mike Rosulek <mike@mikero.com>. Feel free to contact me with comments, questions, patches, or whatever. COPYRIGHT
Copyright (c) 2008 Mike Rosulek. All rights reserved. This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. perl v5.12.3 2008-01-17 Time::Fake(3pm)
All times are GMT -4. The time now is 05:43 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy