awk pattern replacement


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers awk pattern replacement
# 1  
Old 06-02-2009
Data awk pattern replacement

Hi I'm a newbie in unix and I'm having trouble in creating a script. I want to search for a pattern '_good' and insert new lines that contains '_bad', '_med', '_fail' while also ensure that the line contains _good is removed

here some of the data

UPDATE SCHOOL SET GRADE = 'PRE_SEMESTER_1_GOOD' WHERE GRADE = 'PRE_YEARLY_GOOD';
UPDATE SCHOOL SET GRADE = 'PRE_SEMESTER_1_ELSE' WHERE GRADE = 'PRE_YEARLY_ELSE';
UPDATE SCHOOL SET GRADE = 'PRE_SEMESTER_2_GOOD' WHERE GRADE = 'PRE_MONTHLY_GOOD';
UPDATE SCHOOL SET GRADE = 'PRE_SEMESTER_2_ELSE' WHERE GRADE = 'PRE_MONTHLY_ELSE';

and the required output to be:

UPDATE SCHOOL SET GRADE = 'PRE_SEMESTER_1_BAD' WHERE GRADE = 'PRE_YEARLY_BAD';
UPDATE SCHOOL SET GRADE = 'PRE_SEMESTER_1_MED' WHERE GRADE = 'PRE_YEARLY_MED';
UPDATE SCHOOL SET GRADE = 'PRE_SEMESTER_1_FAIL' WHERE GRADE = 'PRE_YEARLY_FAIL';
UPDATE SCHOOL SET GRADE = 'PRE_SEMESTER_1_ELSE' WHERE GRADE = 'PRE_YEARLY_ELSE';
etc

I have use awk to use this but i'm stuck :

here is my code:
Code:
#!/bin/sh

awk 'BEGIN{

FS = '_'
}

var1 = BAD
var2 = MED
var3 = FAIL


for (i=0; i <= NR; i++)
{
?????????????????
}

END 'certain.txt > reuslt.txt

if anyone can help me I would be greatly appreciated. Thanx
# 2  
Old 06-03-2009
Try...
Code:
awk '
BEGIN {
   n = split("BAD MED FAIL", a)
}
{
   if ($0 ~ /GOOD/) {
      for (i = 1; i <= n; i++) {
         x = $0
         gsub("GOOD", a[i], x)
         print x
      }
   } else {
      print $0
   }
}
' certain.txt > result.txt

 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

GUI for multiple pattern replacement

I'm trying to change a few programs in our environment. Basically We have hardcoded some server names and stuff, So I want some one to suggest me some UNIX gui tools that can be used to replace these.. I really don't want to deal doing this through the command line. I want to transfer the files... (3 Replies)
Discussion started by: sudden
3 Replies

2. Shell Programming and Scripting

Help with Pattern Matching and replacement in Gz files

Hi Techies, I need a help in finding junk characters and remove them from a Datafile. we have a file and it had crores of records like below SGSN_MCC_MNC=01150 but sometime due to the issue with sending server we are getting some junk characters in the middle of data like below ... (6 Replies)
Discussion started by: mahi_mayu069
6 Replies

3. Shell Programming and Scripting

Pattern Matching and replacement

Hello Everybody, I need a help in the below pattern matching and replacement issue I have a file : emp.txt 21356 suresh 12/12/2012 23511 ramesh 11/06/2011 31456 biswajit 09/08/2013 53134 archan 06/02/2009 first field:- employee id, 2nd field is name and third field is date of joining ... (10 Replies)
Discussion started by: shellscripting
10 Replies

4. Shell Programming and Scripting

Unix file pattern check and replacement

HI Guys , Using UNIX ,I intend to check with correct file pattern Access_file_Record.YYYYMM in path /tmp If the file exist in correct format come out from code . If not found check with different file patterns for same month period YYYYMM ( Like Access_file_Record_YYYYMM.txt or... (8 Replies)
Discussion started by: Perlbaby
8 Replies

5. Shell Programming and Scripting

sed noob needs help with replacement pattern.

Hi there, i am absolutely new in shell programming and especially using sed. What i want to do is to replace every emailaddress suffix with another. In my Testfile there is: foo@bar.comMy attempt to replace every @<something>.<someotherthing> is: sed 's/@+\.+/REPLACE/g' test.txt... (5 Replies)
Discussion started by: Donngal
5 Replies

6. Shell Programming and Scripting

Sed for selective pattern replacement

Hi I am having a code snippet grant permission to all user sts|ln|uSe|PSG sajncht|se|Use|PPSPSG psg|ln|use|TSPSG sts_user.Me revoke I need to change all occurance of use (uSe,Use,use) with USE. I am using the following sed command for this sed 's//USE/g' s_sample.txt Output: (7 Replies)
Discussion started by: sudeep.id
7 Replies

7. Shell Programming and Scripting

String replacement when particular pattern matches in a file

I have a file file123.xml which looks like this xmlEntry="username"="josh" <property="never_back_down"> phone="<178652>" apn=property:address="wonderland" xmlEntry="username"="jessica" <property="never_back_down"> phone="<178653>" apn=property:address="wonderland"... (5 Replies)
Discussion started by: poga
5 Replies

8. Shell Programming and Scripting

Date Pattern Match (replacement string)

Hello, i am splitting files and sometimes the string of the pattern doesnt exist in the input file it starts for example with 00:00:01. So the output is completely desorganized, is there any way of putting a replacement string in the pattern so it will grab all the times from 00:**:** to first... (0 Replies)
Discussion started by: x-plicit78
0 Replies

9. Linux

matching pattern and replacement

Hi I am trying to look for a view name in create view statement and then replace this view name with VW_ in grants line in my ddl file . cat dim_provider.sql | grep -i "create view" | while read f1 f2 f3 f4 f5 f6 f7 f8 f9 do new_vw=` echo "$f3" | cut -d "." -f2... (32 Replies)
Discussion started by: capri_drm
32 Replies

10. UNIX for Dummies Questions & Answers

Pattern Replacement

There is a requirement that i need to replaced a pattern by another pattern in all the files in my entire file system. there are 1000s of file in the system. let the pattern is "calcuta". i have to replace this pattern by "kolkata" in all those files which contain "calcuta". I am only able to... (12 Replies)
Discussion started by: palash2k
12 Replies
Login or Register to Ask a Question