How to replace match multi choice?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting How to replace match multi choice?
# 1  
Old 09-22-2010
Question How to replace match multi choice?

Dear All.Smilie

How to replace match multi choice
match data in 2 file.


my log :: All_service.txt
Code:
66853676964@1925500@90255000001@0@20/02/2009 16:05:08@18/03/2009 11:04:42@null
66805979212@1925500@90255000001@0@23/08/2010 14:52:00@23/08/2010 14:52:00@11/08/2010 16:31:40
66853636453@1925500@90255000001@1@01/12/2008 15:06:40@16/12/2008 14:42:32@null
66814494493@1925500@90255000001@3@20/02/2009 17:27:01@20/02/2009 17:27:40@null
66897975872@1925500@90255000001@2@07/06/2010 11:58:56@06/08/2010 16:03:31@08/07/2010 4:20:44
66897977348@1925500@90255000001@3@08/06/2010 14:58:49@08/06/2010 15:00:18@08/06/2010 14:58:49
66873482763@1925500@90255000001@3@25/02/2009 13:47:27@25/02/2009 14:53:53@25/02/2009 13:47:27
66873498548@1925500@90255000001@4@16/12/2008 13:47:05@16/12/2008 14:55:51@null
66877854320@1925500@90255000001@0@06/07/2010 21:05:45@06/07/2010 21:05:45@null
66814388638@1925500@90255000001@5@23/08/2010 14:56:57@23/08/2010 15:31:00@23/08/2010 14:56:57

match_log.txt
Code:
0       E
1       P
2       A
3       E
4       E
5       E

I want out put newstatus.txt

Code:
66853676964@1925500@90255000001@E@20/02/2009 16:05:08@18/03/2009 11:04:42@null
66805979212@1925500@90255000001@E@23/08/2010 14:52:00@23/08/2010 14:52:00@11/08/2010 16:31:40
66853636453@1925500@90255000001@P@01/12/2008 15:06:40@16/12/2008 14:42:32@null
66814494493@1925500@90255000001@E@20/02/2009 17:27:01@20/02/2009 17:27:40@null
66897975872@1925500@90255000001@A@07/06/2010 11:58:56@06/08/2010 16:03:31@08/07/2010 4:20:44
66897977348@1925500@90255000001@E@08/06/2010 14:58:49@08/06/2010 15:00:18@08/06/2010 14:58:49
66873482763@1925500@90255000001@E@25/02/2009 13:47:27@25/02/2009 14:53:53@25/02/2009 13:47:27
66873498548@1925500@90255000001@E@16/12/2008 13:47:05@16/12/2008 14:55:51@null
66877854320@1925500@90255000001@E@06/07/2010 21:05:45@06/07/2010 21:05:45@null
66814388638@1925500@90255000001@E@23/08/2010 14:56:57@23/08/2010 15:31:00@23/08/2010 14:56:57

Thanks for any help guys, I am new to this and feel lost. Smilie
# 2  
Old 09-22-2010
This should work (but I'm writing it from top of my head, without access to machine with AWK or Linux/Unix):
Code:
cat match_log.txt | tr -s " " | awk -F"@" 'NR==FNR{split($0,a," ");b[a[1]]=a[2];next}{$4=b[$4]}1' - All_service.txt > newstatus.txt

This User Gave Thanks to bartus11 For This Post:
# 3  
Old 09-22-2010
Another one:
Code:
awk 'NR==FNR{a[$1]=$2;next}{FS="@";$4=a[$4]}1' OFS="@" match_log.txt All_service.txt

This User Gave Thanks to Franklin52 For This Post:
# 4  
Old 09-22-2010
Hi,

I have a file like this

random row a = this has some bad data
random bad row b = this bad has some data
random row bad x = this has bad some data
random row bad e = this has some data bad
bad random row g = tbadhis has some data

i want to replace "bad" in the 2nd coloumn (after =) with "good"
has to be done on all the lines where "bad" appears

thank you
# 5  
Old 09-22-2010
Code:
$ cat file
random row a = this has some bad data 
random bad row b = this bad has some data
random row bad x = this has bad some data
random row bad e = this has some data bad
bad random row g = tbadhis has some data
$ sed 's/\(.*=.*\)bad/\1good/g' file
random row a = this has some good data 
random bad row b = this good has some data
random row bad x = this has good some data
random row bad e = this has some data good
bad random row g = tgoodhis has some data

# 6  
Old 09-23-2010
@frans
what is the significance of
\1
before good here?

also, can i cut paste these lines on which the replace function has been performed to the EOF?I have tried to achieve this but in multiple steps like first deleting and copying these lines to a different file with sed and then copying them from that file to End Of this File manually. Hope I make sense



---------- Post updated at 10:08 AM ---------- Previous update was at 09:59 AM ----------

as i understand - it only replaces the last occurrence on the RHS...

Last edited by burf; 09-23-2010 at 02:28 AM..
# 7  
Old 09-23-2010
Code:
awk  'BEGIN{FS=OFS="+"}{split($2,a," "); {if (a[2]=="bad") sub(a[2],"good",$2)}}1' infile

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Multi line regex for search and replace

I have text file like below: a.txt Server=abc Run=1 Time=120.123 Tables=10 Sessions=16 Time=380.123 Version=1.1 Jobs=5 Server=abc Run=2 Time=160.123 Tables=15 Sessions=16 Time=400.258 Version=2.0 (1 Reply)
Discussion started by: sol_nov
1 Replies

2. Shell Programming and Scripting

Replace a multi-line strings or numbers

Hi I have no experience in Unix so any help would be appreciated I have the flowing text 235543 123 45654 199 225 578 45654 199 225 I need to find this sequence from A file 45654 199 225 (22 Replies)
Discussion started by: khaled79
22 Replies

3. Shell Programming and Scripting

sed to replace a line with multi lines from a var

I am trying to find a line in a file ("Replace_Flag") and replace it with a variable which hold a multi lined file. myVar=`cat myfile` sed -e 's/Replace_Flag/'$myVar'/' /pathto/test.file myfile: cat dog boy girl mouse house test.file: football hockey Replace_Flag baseball ... (4 Replies)
Discussion started by: bblondin
4 Replies

4. Shell Programming and Scripting

SED - insert space at the beginning of line and multi replace command

hi I am trying to use SED to replace the line matching a pattern using the command sed 'pattern c\ new line ' <file1 >file 2 I got two questions 1. how do I insert a blank space at the beginning of new line? 2. how do I use this command to execute multiple command using the -e... (5 Replies)
Discussion started by: piynik
5 Replies

5. Shell Programming and Scripting

Global search and replace multi line file

Hello I need to search for a mult-line strngs(with spaces in between and qoted) in a file1 and replace that text with Fixed string globally in file1. The strng to search for is in file2. The file is big with some 20K records. so speed and effciency is required file1: (where srch & rplc... (0 Replies)
Discussion started by: Hiano
0 Replies

6. Shell Programming and Scripting

Multi-Line Search and Replace

There appears to be several threads that touch on what I'm trying to do, but nothing quite generic enough. What I need to do is search through many (poorly coded) HTML files and make changes. The catch is that my search string may be on one line or may be on several lines. For example there... (5 Replies)
Discussion started by: bisbell
5 Replies

7. Shell Programming and Scripting

Match elements in an AWK multi-dimensional array

Hello, I have two files in the following format; file1: A B C D E F G H I J K L file2: 1 2 3 4 5 6 7 8 9 10 11 12 I have read them both in to multi-dimensional arrays. I need a file that has column 2 of the first file printed out for each column 3 of the second file ie... ... (3 Replies)
Discussion started by: cold_Que
3 Replies

8. Shell Programming and Scripting

multi line multirecord find and replace

Hello I am looking to have a script that performs some tasks for find and replace and inserts a line as well. I have done some programming 10 years ago, so it is causing me a little grief. File consists of 2500 records. I will show you a sample consisting of two records below and what needs... (3 Replies)
Discussion started by: cdc01
3 Replies

9. UNIX for Advanced & Expert Users

how can awk match multi pattern in a string

Hi all, I need to category the processes in my system with awk. And for now, there are several command with similar name, so i have to match more than one pattern to pick it out. for instance: binrundb the string1, 2 & 3 may contain word, number, blank or "/". The "bin" should be ahead "rundb"... (5 Replies)
Discussion started by: sleepy_11
5 Replies

10. Shell Programming and Scripting

Search and replace multi-line text in files

Hello I need to search for a mult-line text in a file exfile1 and replace that text with another text. The text to search for is in exfile2 and the replacement text is in exfile3. I work with kornshell under AIX and need to do this with a lot of files. (the file type is postscript and they need... (10 Replies)
Discussion started by: marz
10 Replies
Login or Register to Ask a Question