Finding the pattern and replacing the pattern inside the file


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Finding the pattern and replacing the pattern inside the file
# 8  
Old 07-25-2013
Assuming that you are using the variable after assigning it on the file...(else it will print a blank in place of &xxx string)

Code:
$ perl -pe '$hash{$1}=$2 if /\&(\w+)\=(\w+)/;s/\&(\w++)(?!\=)/$hash{$1}/g;' file
go to &abc=ddd;
 if file found &ccc=10;
 no the value name is ddd;
  and the age is 10;

# 9  
Old 07-25-2013
Hi rdrtx1,

It not working for the generic thing. i dont have same line there will be different lines but with the same format. if you have any idea share it.

---------- Post updated at 03:32 AM ---------- Previous update was at 03:31 AM ----------

Guys if you have idea help me out in this.

Last edited by saaisiva; 07-25-2013 at 05:47 AM..
# 10  
Old 07-25-2013
Have you tried the perl solution above..?
# 11  
Old 07-25-2013
Hi Rajamadhavan,

Code:
Nested quantifiers in regex; marked by <-- HERE in m/&(\w++ <-- HERE )(?!=)/ at -e line 1.

i am getting following error when i run your code
# 12  
Old 07-25-2013
Whats your perl version ? Possessive quantifiers (\w++) works on versions > v5.10. If you can upgrade to perl 5.12 or latest version, it will work...

---------- Post updated at 04:23 AM ---------- Previous update was at 04:14 AM ----------

Try this one..should work in older version (>= 5.8)
Code:
perl -pe '$hash{$1}=$2 if /\&(\w+)\=(\w+)/;s/\&((?>\w+))(?!\=)/$hash{$1}/g;' file

# 13  
Old 07-25-2013
Hi Rajamadhavan,

Ya now it works but the it should not replce the undeclared variable tp space. as i need those values.
# 14  
Old 07-25-2013
will get slightly complicated.
Code:
perl -pe '$hash{$1}=$2 if /\&(\w+)\=(\w+)/; m/\&((?>\w+))(?!\=)/g;s/\&((?>\w+))(?!\=)/$hash{$1}/g if(defined $hash{$1});' file

Please note the above solutions is under the assumption that you have one assignment and/or one substitution per line.

if you have something like below, we need a bigger script.
Code:
&abc value is &bcd

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

[sed] Finding and sticking the pattern to the beginning of successive lines up to the next pattern

I have a file like below. 2018.07.01, Sunday 09:27 some text 123456789 0 21 0.06 0.07 0.00 2018.07.02, Monday 09:31 some text 123456789 1 41 0.26 0.32 0.00 09:39 some text 456789012 1 0.07 0.09 0.09 09:45 some text 932469494 1 55 0.29 0.36 0.00 16:49 some text 123456789 0 48 0.12 0.15 0.00... (9 Replies)
Discussion started by: father_7
9 Replies

2. UNIX for Beginners Questions & Answers

Copy pattern inside the file

Hi all, I have files and have a missing record. I need copy the existing record and mark those values up. For example in the below file 11048 is missing. I need to copy 22001 and copy those create the values for 11048. I have 120 set of files and I need to do that on all files. Note the... (8 Replies)
Discussion started by: arunkumar_mca
8 Replies

3. Shell Programming and Scripting

Replacing a pattern in different cases in different columns with a single pattern

Hi All I am having pipe seperated inputs like Adam|PeteR|Josh|PEter Nick|Rave|Simon|Paul Steve|smith|PETER|Josh Andrew|Daniel|StAlin|peter Rick|PETer|ADam|RAVE i want to repleace all the occurrence of peter (in any case pattern PeteR,PEter,PETER,peter,PETer) with Peter so that output... (5 Replies)
Discussion started by: sudeep.id
5 Replies

4. Shell Programming and Scripting

Help with matching pattern inside a file

I have a huge file that has roughly 30304 lines. I need to extract specific info from that file. For example, Box 1 > *aaaaaaaajjjj* > hbbvjvj > jdnnfddllll > *dgdfhfekwjh* Box 2 > *aaaaaaa'aj'jjj* > dse hkjuejef bfdw > dyeee > dsewq > *dgdfhfekwjh* >feweiuei Box 3 > *aaaa"aaaaj"jjj* >... (25 Replies)
Discussion started by: Ernst
25 Replies

5. Shell Programming and Scripting

CSV: Replacing multiple occurrences inside a pattern

Greatings all, I am coming to seek your knowledge and some help on an issue I can not currently get over. I have been searching the boards but did not find anything close to this matter I am struggling with. I am trying to clean a CSV file and make it loadable for my SQL*Loader. My problem... (1 Reply)
Discussion started by: OCanada
1 Replies

6. Shell Programming and Scripting

Need help in sed command ( Replacing a pattern inside a file with a variable value )

Hello, The following sed command is giving error sed: -e expression #1, char 13: unknown option to `s' The sed command is echo "//-----" | sed "s/\/\/---*/$parChk/g" where parChk="//---ee-" How can i print the variable value from sed command ? And is it possible to replace a... (2 Replies)
Discussion started by: frozensmilz
2 Replies

7. Shell Programming and Scripting

Finding Last occurance of another pattern when a pattern is found.

Hi, I have two files viz, rak1: $ cat rak1 rak2: $ cat rak2 sdiff rak1 rak2 returns: I want the lines that got modified, changed, or deleted preceding with the section they are in. I have done this so far: (1 Reply)
Discussion started by: rakeshou
1 Replies

8. Shell Programming and Scripting

replacing a pattern in a file

Hi guys, i have a pattern that i am searching in a file and i want to extract some of this pattern ... module TS1N65ULPA96X32M4 ( .... i want to extract only TS1N65ULPA96X32M4 part and i do the following sed 's/module \(x*\).*/\1/' name_of_file but this is not quite right. could... (6 Replies)
Discussion started by: ROOZ
6 Replies

9. Shell Programming and Scripting

help with finding & replacing pattern in a file

Hi everyone. Could u be so kind and help me with on "simple" shell script? 1. i need to search a file line by line for a pattern. example of a lines in that file 2947 domain = feD,id = 00 0A 02 48 17 1E 1D 39 DE 00 0E 00,Name Values:snNo = f10 Add AttFlag = 0 2. i need to find... (0 Replies)
Discussion started by: dusoo
0 Replies

10. Shell Programming and Scripting

Replacing a paragraph between pattern , with the content 4m another file

hi, i wanted to put the output of file f1 into the pattern space of file f2 f1: wjwjwjwjwjwjwj //these line go in file f2 jwjwjwjwjwjjwjw wjwjwjwjjwjwjwj f2: Pattern_start __________ //these are the line to be replaced __________ Pattern_end i m... (4 Replies)
Discussion started by: go4desperado
4 Replies
Login or Register to Ask a Question