Awk/sed to replace variable in file


 
Thread Tools Search this Thread
Top Forums UNIX for Beginners Questions & Answers Awk/sed to replace variable in file
# 8  
Old 11-18-2019
A little clumsy as you have to take care for every single special case - may benefit from some polishing:
Code:
awk '
BEGIN   {PAT = "<<[^>]*>>"
        }

        {match ($0, PAT)
         NXT = RSTART + RLENGTH
         FN = substr ($0, RSTART+2, RLENGTH-4)
         while (0 < getline T1[++CNT1] < FN );
         close (FN)
         match (substr ($0, NXT), PAT)
         FN = substr ($0, NXT+RSTART+1, RLENGTH-4)
         while (0 < getline T2[++CNT2] < FN );
         close (FN)

         if (CNT1==1)   print
         else           for (i=1; i<CNT1; i++)   if (CNT2>1)    for (j=1; j<CNT2; j++)  {TMP = $0
                                                                                         sub (PAT, T1[i], TMP)
                                                                                         sub (PAT, T2[j], TMP)
                                                                                         print TMP
                                                                                        }
                                                 else                                   {TMP = $0
                                                                                         sub (PAT, T1[i], TMP)
                                                                                         print TMP
                                                                                        }
         CNT1 = CNT2 = 0
        }
' file


@nezabudka: nice, witty solution! But - shouldn't it be print $1 d $3 b $5 in lieu of what is in your post?

Last edited by RudiC; 11-19-2019 at 08:32 AM.. Reason: Closed 2nd FN too early - corrected.
This User Gave Thanks to RudiC For This Post:
# 9  
Old 11-22-2019
Thanks All
i was able to write my code in shell script via loop and it is working fine/expected.
will share that code
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Programming

How to replace the complex strings from a file using sed or awk?

Dear All, I am having a requirement to find the difference between 2 files and generate a discrepancy report out of it as an html page. I prefer using diff -y file1 file2 since it gives user friendly layout to know any discrepancy in the record and unique records among the 2 file. Here's how it... (12 Replies)
Discussion started by: Badhrish
12 Replies

2. Shell Programming and Scripting

How to replace a string with a variable in a file using sed?

I have a file having some text like: PATH_ABC=/user/myLocation I have to replace "/user/myLocation" with a session variable say, $REPLACE_PATH, where $REPLACE_PATH=/user/myReplaceLocation The following sed command is not working. It is writing PATH_ABC=$REPLACE_PATH in the file ... (2 Replies)
Discussion started by: SKhan
2 Replies

3. Shell Programming and Scripting

sed/awk script to replace only FIRST comment in the file

My first comment on every file contains the license message. I want to replace with a new license message. I used the below sed script, which replaces all comments. What is the modification or any other method with awk script for the below to edit only the first comment(license message)? #sed -f... (1 Reply)
Discussion started by: vpshastry
1 Replies

4. Shell Programming and Scripting

Replace value of a variable in a file through script using sed

Hi, I am trying to replace the value of a variable in a file through another script. Example: Filename : abc.txt contents: a=10 b=20 c=30 Need to change the value of, say, b - Tried using the following: sed "s/${b}/15/g" abc.txt Have tried various forms of sed (with single quotes,... (4 Replies)
Discussion started by: rituparna_gupta
4 Replies

5. Shell Programming and Scripting

sed or awk to replace a value in a certain line from another file containing a string

Hi experts, In my text file I have the following alot of lines like below. input.k is as follows. 2684717 -194.7050476 64.2345581 150.6500092 0 0 2684718 -213.1575623 62.7032242 150.6500092 0 0 *INCLUDE $# filename... (3 Replies)
Discussion started by: hamnsan
3 Replies

6. Red Hat

How to pass value of pwd as variable in SED to replace variable in a script file

Hi all, Hereby wish to have your advise for below: Main concept is I intend to get current directory of my script file. This script file will be copied to /etc/init.d. A string in this copy will be replaced with current directory value. Below is original script file: ... (6 Replies)
Discussion started by: cielle
6 Replies

7. Shell Programming and Scripting

using sed/awk to replace a block of text in a file?

My apologies if this has been answered in a previous post. I've been doing a lot of searching, but I haven't been able to find what I was looking for. Specifically, I am wondering if I can utilize sed and/or awk to locate two strings in a file, and replace everything between those two strings... (12 Replies)
Discussion started by: kiddsupreme
12 Replies

8. Shell Programming and Scripting

Sed or awk for batch replace file name

Can you please point me in the correct direction? I need a line or script to run though a given directory and find all files with "@domain.local" in there names and simple remove that. For example if the files were named 1234@domain.local the file would then become 1234. (1 Reply)
Discussion started by: binary-ninja
1 Replies

9. Shell Programming and Scripting

using file-and-replace sed command with the use of a variable?

Ok, so, let's say I have the variable $GMAILID....How can I use it with sed command so to replace a string in a file? e.g.: sed -i 's/$GMAILID/test@gmail.com/' /home/$USER/Desktop/sendmail (4 Replies)
Discussion started by: hakermania
4 Replies

10. Shell Programming and Scripting

Find and replace with variable using sed or awk

hi, i have file say email.temp looks like Bell_BB 17 Bell_MONTHLY 888 SOLO_UNBEATABLE 721 and another file r3 Bell BB,Bell_BB Bell,Bell_MONTHLY SOLO,SOLO_UNBEATABLE i want email.temp files $1 say Bell_BB should be replaced by r3 Bell BB and Bell_MONTHLY by... (2 Replies)
Discussion started by: raghavendra.cse
2 Replies
Login or Register to Ask a Question