how to replace a particular character in perl


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting how to replace a particular character in perl
# 1  
Old 09-30-2011
Question how to replace a particular character in perl

Hi,

I have a file with two string :
aa_bb_cc_def
gg_hh_jj_xyz

now i want a command in perl script, which gives me the result as :
aa_bb_cc.def
gg_hh_jj.xyz

Can anyone help me on this plz..

thanks in advane.
# 2  
Old 09-30-2011
Code:
 
$ perl -F_ -lane 'print "$F[0]_$F[1]_$F[2].$F[3]"' test
aa_bb_cc.def
gg_hh_jj.xyz

This User Gave Thanks to itkamaraj For This Post:
# 3  
Old 09-30-2011
Question

hi itkamaraj,

thanks for your reply.
but it is an example .. actually the last word is not alaway as fourth word.

say another string is..
qq_ww_sdf
another ... ss_dd_ff_gg_hh_hjk

then how can i do that..
Thanks in advance
# 4  
Old 09-30-2011
PERL

Hi,

Try this code

Code:
perl -F_ -lane '$_=~ s/(.+)\_(.+)/$1\.$2/g;print $_;'  file

file - input file

Cheers,
RangaSmilie
# 5  
Old 09-30-2011
Bug

Hi rangarsan,

many many thanks to you.. It works fine and solved my problem.Smilie

But can you please explain the regex portion.Smilie
It will help me a lot.

Thanks again
# 6  
Old 09-30-2011
PERL

Quote:
Originally Posted by arup1980
Hi rangarsan,

many many thanks to you.. It works fine and solved my problem.Smilie

But can you please explain the regex portion.Smilie
It will help me a lot.

Thanks again

Code:
$_=~ s/(.+)\_(.+)/$1\.$2/g;

s modifier used to substitute
g modifier denotes global

Code:
(.+)

will matches the strings upto last _
Code:
\_

will matches the last _
Code:
(.+)

will matches the last string after last _

Code:
$1

denotes first match string (.+) upto last _
Code:
$2

denotes second match string (.+) after last _

then we are using these string to substitute.
Code:
$_=~ s/(.+)\_(.+)/$1\.$2/g;

we are replacing the _ in bolded portion.

Cheers,
RangaSmilie
# 7  
Old 09-30-2011
Thanks again...SmilieSmilieSmilie

its very useful ....
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Advanced & Expert Users

Replace certain character at specific place with related character

hello i have file with 100k records and each one has certain value that starts at 28th column and certain value that starts at 88th column e.g. 1st file <25>1234567 ..... <88> 8573785485 i have aditional file with values which are related to value that starts at 88th column of the... (1 Reply)
Discussion started by: dell1520
1 Replies

2. Shell Programming and Scripting

Find character and Replace character for given position

Hi, i want find the character '-' in a file from position 284-298, if it occurs i need to replace it with 'O ' for the position in the file. How to do that using SED command. thanks in advance, Sara (9 Replies)
Discussion started by: Sara183
9 Replies

3. Shell Programming and Scripting

How replace -- character in perl

Hi All, I am having below issue could anybody help me. $x= SELECT * FROM EMP --xyz this change is done in q2; I want delete the charchters from -- to till the end. I want $x to be $x= SELECT * FROM EMP; Thanks, Vijay G (1 Reply)
Discussion started by: gvk25
1 Replies

4. Shell Programming and Scripting

Character Find and replace in Unix or Perl

Hi, I am stuck with an problem and want some help, what i want to do is There is a directory name temp which include file named t1.txt, t2,txt, t3.txt and so on. These files contains data, but there are some bad character also that is % present in the files , I want to write the script... (13 Replies)
Discussion started by: parthmittal2007
13 Replies

5. Shell Programming and Scripting

Replace multiple occurances of same character with a single character.

Hi all, Greetings, I have the following scenario, The contents of main file are like : Unix|||||forum|||||||||||||||is||||||the||best so||||||be|||||on||||||||||||||||||||||||||||||||||||||||||||it And i need the output in the following form: Unix=forum=is=the=best so=be=on=it ... (3 Replies)
Discussion started by: dipanchandra
3 Replies

6. Shell Programming and Scripting

In Sed how can I replace starting from the 7th character to the 15th character.

Hi All, Was wondering how I can do the following.... I have a String as follows "ACCTRL000005022RRWDKKEEDKDD...." This string can be in a file called tail.out or in a Variable called $VAR2 Now I have another variable called $VAR1="000004785" (9 bytes long), I need the content of... (5 Replies)
Discussion started by: mohullah
5 Replies

7. Shell Programming and Scripting

Replace 2 Character With One Using tr

Hi, I have an XML file which is all on one line. <?xml version="1.0" encoding="utf-8"?><FUNCTION><PRODUCTS><PRODUCT CODE="PROD1" ACTION="amend" VALIDATE="no"><SUPPLIER PRODUCT="SUPPPROD1" ACTION="amend" CODE="SUPPLIER"><STOCK_QUANTITY DATA="291"></STOCK_QUANTITY> <STOCK_DATE... (3 Replies)
Discussion started by: Ste_Moore01
3 Replies

8. Shell Programming and Scripting

replace a character with another character

hi i have a string var=abc.ghi.jkl.mno.pqr now i need to replace .(dot) with _(underscore) the result should be like "arresult=abc_def_ghi_jkl_mno_pqr" Please help (8 Replies)
Discussion started by: satish@123
8 Replies

9. Shell Programming and Scripting

read in a file character by character - replace any unknown ASCII characters with spa

Can someone help me to write a script / command to read in a file, character by character, replace any unknown ASCII characters with space. then write out the file to a new filename/ Thanks! (1 Reply)
Discussion started by: raghav525
1 Replies

10. Shell Programming and Scripting

character replace

Hi, I have rows in a file, in each row string starts with "A200819097564". I want to replace the first character A with space.So the string looks like " 200819097564" I tried "tr -s "A2008" " 2008"" But did not get the required outpit. Thanks. (3 Replies)
Discussion started by: pradeep_script
3 Replies
Login or Register to Ask a Question