Replacing exact match


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Replacing exact match
# 8  
Old 05-04-2016
Quote:
Originally Posted by RavinderSingh13
Hello am24,

You should escape the strings as \!Pay TV and \!ADS, if you see my post it is exactly provided like as follows.
Code:
awk -vs1="Cable Yes && \!Pay TV && \!ADS" '($0 == s1){$0="Yes && !Pay TV && !ADS && !MDS"}1' Input_file 2>/dev/null

Thanks,
R. Singh
Hi Ravinder, you appear to have left out "Cable " in the output...

It could be shortened a little:
Code:
awk -v s1='Cable Yes && !Pay TV && !ADS' '$0==s1 {$0=$0 " && !MDS"}1' Input_file

These 2 Users Gave Thanks to Scrutinizer For This Post:
# 9  
Old 05-04-2016
Hi All,

Thanks for your time. I have tried all the codes provided by you all. I am getting the same error message

Code:
Pay: Event not found

Ravinder, I have used the exact code given by you. But still the same error.
Also as per Scrutinizer comments, have used single quotes instead of double quotes. Still the same error.

I am working in Ksh shell. I do not have any idea about bash shell

Regards,
am24
# 10  
Old 05-04-2016
Hello am24,

Could you please try this and let me know if this helps.
Code:
awk '{num=split("Cable Yes && !Pay TV && !ADS", array," ");for(i=1;i<=num;i++){if($0 ~ /^Cable/ && array[i]==$i && $0 ~ /ADS$/){count++}};if(count==NF){$0=$0 " && !MDS"};count=""} 1'   Input_file

Output will be as follows.
Code:
Cable Yes && !Pay TV && !ADS && !MDS
chumma Cable Yes && !Pay TV && !ADS xycc
\noUE  \Label="Cable Yes && !Pay TV && !ADS"

As always on a Solaris/SunOS system, change awkto /usr/xpg4/bin/awk , /usr/xpg6/bin/awk , or nawk.
EDIT: Improving above solution as follows.
Code:
awk '{num=split("Cable Yes && !Pay TV && !ADS", array," ");for(i=1;i<=num;i++){if(array[i]==$i){count++}};if(count==NF){$0=$0 " && !MDS"};count=""} 1'  Input_file

Thanks,
R. Singh

Last edited by RavinderSingh13; 05-04-2016 at 10:40 AM.. Reason: Added one more solution(a small improvement of first solution).
This User Gave Thanks to RavinderSingh13 For This Post:
# 11  
Old 05-04-2016
Hi Ravinder,

I had tried the code. But same below error:

Code:
nawk '{num=split("Cable Yes && !Pay TV && !ADS", array," ");for(i=1;i<=num;i++){if(array[i]==$i){count++}};if(count==NF){$0=$0 " && !MDS"};count=""} 1'  Input_file
Pay: Event not found

Scrutinizer, I have tried your code as well. But same error message.

I am trying to do it. But not getting the results. If anyone find the solution please post.

Regards,
am24
# 12  
Old 05-04-2016
Are you sure that's a ksh error message? It strongly reminds me of an unsuccessful bash history search...
The proposals in post#3 (hopefully) don't interfere with history expansion...
# 13  
Old 05-04-2016
Yes Rudi. I am working in Solaris system and using ksh shell.

I have tried all the codes above and facing the same error message.

Code:
Pay: Event not found

Regards,
am24
# 14  
Old 05-04-2016
What output do you get from the command:
Code:
ps -t $(tty)

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

awk to update file based on partial match in field1 and exact match in field2

I am trying to create a cronjob that will run on startup that will look at a list.txt file to see if there is a later version of a database using database.txt as the source. The matching lines are written to output. $1 in database.txt will be in list.txt as a partial match. $2 of database.txt... (2 Replies)
Discussion started by: cmccabe
2 Replies

2. Shell Programming and Scripting

Help with nawk (Exact Match)

I have a file with the contents below "lets say the name of the file is abcxyz" shown at the end of this. I am using nawk to find the exact ip address and the 6 lines after the match is found using the following nawk statement /usr/bin/nawk "/111.46.14.107/,printed==6 { ++printed; print; }"... (7 Replies)
Discussion started by: knijjar
7 Replies

3. UNIX for Dummies Questions & Answers

Exact match question

Hi guys, I am using Centos 6.3. Actually I posted similar question but I still have some minor problem need be fixed. I have two files, file1:target: gi|57529786|ref|NM_001006513.1| mfe: -31.4 kcal/mol p-value: 0.006985 target: gi|403048743|ref|NM_001271159.1| mfe: -29.6 kcal/mol p-value:... (11 Replies)
Discussion started by: yuejian
11 Replies

4. Shell Programming and Scripting

Exact match using sed

I would like replace all the rows in a file if a row has an exact match to number say 21 in a tab delimited file. I want to delete the row only if it has 21 any of the rows but it should not delecte the row that has 542178 or 563421. I tried this sed '/\<21\>/d' ./inputfile > output.txt ... (7 Replies)
Discussion started by: Kanja
7 Replies

5. Shell Programming and Scripting

Replacing exact directory variable

I am making a script to relocate a project file. I have all of the variables in place and everything is working except: the first variable changes everytime it passes thru a loop. The second is a constant value. when I run that it does what I want...but incorrectly. It is finding... (2 Replies)
Discussion started by: gentlefury
2 Replies

6. Shell Programming and Scripting

Exact match and #

Hi friends, i am using the following grep command for exact word match: >echo "sachin#tendulkar" | grep -iw "sachin" output: sachin#tendulkar as we can see in the above example that its throwinng the exact match(which is not the case as the keyword is sachin and string is... (6 Replies)
Discussion started by: neelmani
6 Replies

7. Shell Programming and Scripting

sed - replacing on the right of a pattern and looking for exact word?

how would you get SED to do the following, say you have the following lines in a text file: user=tigger some text some text some text some text some text some text user=ted some text some text some text some text some text some text user=thekingofrockandroll you want to find any line... (15 Replies)
Discussion started by: rich@ardz
15 Replies

8. Shell Programming and Scripting

exact string match ; search and print match

I am trying to match a pattern exactly in a shell script. I have tried two methods awk '/\<mpath${CURR_MP}\>/{print $1 $2}' multipath perl -ne '/\bmpath${CURR_MP}\b/ and print' /var/tmp/multipath Both these methods require that I use the escape character. I am guessing that is why... (8 Replies)
Discussion started by: bash_in_my_head
8 Replies

9. Shell Programming and Scripting

Exact Word Match

I'm trying to find a exact word match but couldn't do it. ABC ABC_NE Searching for ABC_NE tried grep -w </ABC_NE/> grep "^ABC_NE$" but didn't worked , any awk variants would also help. ---------- Post updated at 08:40 AM ---------- Previous update was at 06:48 AM ---------- I... (2 Replies)
Discussion started by: dinjo_jo
2 Replies

10. Shell Programming and Scripting

How to get exact match sentences?

Hi, I have sentences like this: $sent= Protein modeling studies reveal that the RG-rich region is part of a three to four strand antiparallel beta-sheet, which in other RNA binding protein functions as a platform for nucleic acid interactions. Heterogeneous nuclear ribonucleoparticle... (19 Replies)
Discussion started by: vanitham
19 Replies
Login or Register to Ask a Question