Find pattern and replace using sed


 
Thread Tools Search this Thread
Top Forums UNIX for Beginners Questions & Answers Find pattern and replace using sed
# 1  
Old 09-24-2019
Find pattern and replace using sed

Hi,
i want to replace the following lines in such a way that if the word merge exists in first column it must replace the 3rd column as M and if parse exists in first column then the last column must P, if neither it must mark it as X. I have tried the solution using awk, but it is saying nawk:empty regular expression

Input file:
INDmerge1 <dns > data
INDparse2 <dns > data
IND2 <dns > data

Result file:
INDmerge1 <dns > M
INDparse2 <dns > P
IND2 <dns > X

Can anyone please help here?
OS: SunOS 5.11
# 2  
Old 09-24-2019
Show your attempt(s).
# 3  
Old 09-24-2019
nawk -v host=$HOSTNAME '{
if(match($2,host) && !match($1,"#")) {
if(match($1,"merge"))
print $1"\t"$2"\tM";
else if(match($1,"parser"))
print $1"\t"$2"\tP";
else
print $1" \t"$2"\tX";
} }'
# 4  
Old 09-24-2019
I can't see an "empty regular expression" in your attempt, except if $HOSTNAME doesn't expand. Do you get the quoted error message with above?
parser won't match your sample file, and the latter has > as third field.



Try
Code:
awk '{$4 = ($1 ~ /merge/)?"M":($1 ~ /parse/)?"P":"X"} 1' file
INDmerge1 <dns > M
INDparse2 <dns > P
IND2 <dns > X

This User Gave Thanks to RudiC For This Post:
# 5  
Old 09-24-2019
Yes, you are right! if i'm executing this bit of code standalone it doesnt throw any errors! however when this is plugged into a startup script it is giving that empty regular expression error.

Thanks a lot for you prompt reply.
I'll try the snippet you have suggested and let you know how it went!

--- Post updated at 11:58 AM ---

Unfortunately RudiC i'm getting this error now

awk: syntax error near line 1
awk: illegal statement near line 1
awk: syntax error near line 1
awk: bailing out near line 1
# 6  
Old 09-24-2019
Didn't you say you're using nawk?
This User Gave Thanks to RudiC For This Post:
# 7  
Old 09-24-2019
my bad! yes it was a copy paste error! :P
Thanks RudiC so far so good the command is working when it is plugged in the startup script
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

sed replace pattern

I have a file with multiple lines, all in the same format. For each line, I need to replace the sequence of digits after the last : with a new value, but keep the single quote at the end of the line. Example: Input: ( two lines of file) Name: 'text1:200/text2:1.2.3.4' Name2:... (19 Replies)
Discussion started by: Beginner101
19 Replies

2. Shell Programming and Scripting

sed -- Find pattern -- print remainder -- plus lines up to pattern -- Minus pattern

The intended result should be : PDF converters 'empty line' gpdftext and pdftotext?xml version="1.0"?> xml:space="preserve"><note-content version="0.1" xmlns:/tomboy/link" xmlns:size="http://beatniksoftware.com/tomboy/size">PDF converters gpdftext and pdftotext</note-content>... (9 Replies)
Discussion started by: Klasform
9 Replies

3. Shell Programming and Scripting

sed find/replace a pattern, but not this one..

I've got a file like so: ...lots of lines, etc. push "route 10.8.0.0 255.255.255.0" push "route 192.168.1.123 255.255.255.0" ...lots of lines, etc. I want to sed find/replace the IP address in the second line, whatever it is, with a new IP address, but I don't want to touch the first line.... (5 Replies)
Discussion started by: DaHai
5 Replies

4. Shell Programming and Scripting

sed command to replace two character pattern with another pattern

Not able to paste my content. Please see the attachment :-( (2 Replies)
Discussion started by: vivek d r
2 Replies

5. Shell Programming and Scripting

sed help, Find a pattern, replace it with same text minus leading 0

HI Folks, I'm looking for a solution for this issue. I want to find the Pattern 0/ and replace it with /. I'm just removing the leading zero. I can find the Pattern but it always puts literal value as a replacement. What am I missing?? sed -e s/0\//\//g File1 > File2 edit by... (3 Replies)
Discussion started by: SirHenry1
3 Replies

6. Shell Programming and Scripting

How to replace the last pattern using sed?

myfile: AAAaaa BBBbbb CCCccc AAAeee DDDddd how to replace the last AAA as EEEEE using sed? like this: AAAaaa BBBbbb CCCccc EEEEEeee DDDddd (14 Replies)
Discussion started by: vistastar
14 Replies

7. Shell Programming and Scripting

find a pattern and replace

i have a file which contains lines like this. intsrcrpttrn1099mctrl:export GRAPHPARM_AR="-input_code M302023" intsrcrpttrn1099mload:export GRAPHPARM_AR="-input_code M192023" intsrcrpttrn1099mload:export GRAPHPARM_AR="-input_code P192023" the value after -input_code starts with some alphabet... (4 Replies)
Discussion started by: dr46014
4 Replies

8. Shell Programming and Scripting

sed: Find start of pattern and extract text to end of line, including the pattern

This is my first post, please be nice. I have tried to google and read different tutorials. The task at hand is: Input file input.txt (example) abc123defhij-E-1234jslo 456ujs-W-abXjklp From this file the task is to grep the -E- and -W- strings that are unique and write a new file... (5 Replies)
Discussion started by: TestTomas
5 Replies

9. Shell Programming and Scripting

SED Search Pattern and Replace with the Pattern

Hello All, I have a string "CP_STATUS OSSRC_R6_0_Shipment_R1H_CU AOM_901046 R1H_LLSV1_2008031", and I just want to extract LLSV1, but I dont get the expected result when using the sed command below. # echo "CP_STATUS OSSRC_R6_0_Shipment_R1H_CU AOM_901046 R1H_LLSV1_2008031" | awk '{print... (4 Replies)
Discussion started by: racbern
4 Replies

10. Shell Programming and Scripting

Find a pattern and replace using sed.

Hi I need to help on finding the below pattern using sed <b><a href="/home/document.do?assetkey=x-y-abcde-1&searchclause=photo"> and replace as below in the same line on the index file. <b><a href="/abcde.html"> thx in advance. Mari (5 Replies)
Discussion started by: maridhasan
5 Replies
Login or Register to Ask a Question