Sponsored Content
Top Forums Shell Programming and Scripting Search a string,get line and replace with second field Post 302642545 by ygemici on Thursday 17th of May 2012 03:17:51 PM
Old 05-17-2012
Quote:
Originally Posted by greet_sed
@ ygemici:
Brilliant . It works . Thanks for the solution. Smilie

can you please explain this part?
Code:
 s[x++]=a[2]}}NR!=FNR{xx="\"ref/img/";{sub("URL=.*","URL="xx s[i++],$0);print

while read the line we want to get that matches ("key value") from file2 and split it to the parts with '=' and assign to and array that named "a"
[ our line was --> <key value="customer/priority"/> )
so
Code:
a[1] -->"    <key value"
a[2] -->""customer/priority"/>"

and works same procedure on the for other matches lines...
and we collect the all a[2] to one array that named "s"
Code:
s[0]-->"customer/priority"/>"
s[1]-->"customer/priority2"/>"
s[2]-->"customer/priority4"/>"

and reading the file2 must finish Smilie
and if the NR is equal the FNR so it is read first file,,
else awk start to read other files (second,third,...)
so NR!=FNR is simply means the awk start to reading process from second and other files..
in our issue,we read the second file so it is "file1" remember file arguments
Code:
awk ... file2 file1

Code:
xx="\"ref/img/" -->  it s just an assing a value.. xx=""ref/img/" (we will add the starting of the new URL value )

Code:
sub("URL=.*","URL="xx s[i++],$0)

--> change the URL=.* -->
Code:
URL="ref/img/customer/priority"/>
with
URL="xx + s[0]    " ,from our line ($0)
xx->""ref/img/"
s[0]->"customer/priority"/>"
so new URL express --> "URL="ref/img/customer/priority"/>"

we change the URL portion from our line and
print-> print the new line (with new URL)

so every read line (records) means the `i` will increase by one [i++]
finally , works same procedure for the other lines from file1 with s[1] and s[2] values

regards
ygemici
This User Gave Thanks to ygemici For This Post:
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

how to insert line break + string in vi (search & replace )

Hello all i have big test file that has allot of structure text something like this : <foo1 *.html> <blah action> somthing 1 somthing 2 </blah> </foo1 > now i will like to insert 2 more lines of text below the <blah action> so it will be like : <foo1... (1 Reply)
Discussion started by: umen
1 Replies

2. Shell Programming and Scripting

Perl: Search for string on line then search and replace text

Hi All, I have a file that I need to be able to find a pattern match on a line, search that line for a text pattern, and replace that text. An example of 4 lines in my file is: 1. MatchText_randomNumberOfText moreData ReplaceMe moreData 2. MatchText_randomNumberOfText moreData moreData... (4 Replies)
Discussion started by: Crypto
4 Replies

3. UNIX for Dummies Questions & Answers

how can search a String in one text file and replace the whole line in another file

i am very new to UNIX plz help me in this scenario i have two text files as below file1.txt name=Rajakumar. Discipline=Electronics and communication. Designation=software Engineer. file2.txt name=Kannan. Discipline=Mechanical. Designation=CADD Design Engineer. ... (6 Replies)
Discussion started by: kkraja
6 Replies

4. Shell Programming and Scripting

search for a string ,replace the whole line with new line

hai i am very new to unix. i am having two files like this. first.properties cache.ZA.TL_CCY=SELECT trim(CCY_CODE)||trim(COUNTRY_CODE)||trim(CITY_CODE) AS... (4 Replies)
Discussion started by: kkraja
4 Replies

5. Shell Programming and Scripting

To trim Certain field in a line of a file and replace the new string in that position

To trim 3rd field in for all the lines of a file and replace the modified string in that particular field. For example i have a file called Temp.txt having content Temp.txt ----------------- 100,234,M1234 400,234,K1734 300,345,T3456 ---------------- So the modified file output should... (4 Replies)
Discussion started by: rpadhi
4 Replies

6. Shell Programming and Scripting

perl search and replace - search in first line and replance in 2nd line

Dear All, i want to search particular string and want to replance next line value. following is the test file. search string is tmp,??? ,10:1 "???" may contain any 3 character it should remain the same and next line replace with ,10:50 tmp,123 --- if match tmp,??? then... (3 Replies)
Discussion started by: arvindng
3 Replies

7. Shell Programming and Scripting

Awk Search text string in field, not all in field.

Hello, I am using awk to match text in a tab separated field and am able to do so when matching the exact word. My problem is that I would like to match any sequence of text in the tab-separated field without having to match it all. Any help will be appreciated. Please see the code below. awk... (3 Replies)
Discussion started by: rocket_dog
3 Replies

8. Shell Programming and Scripting

Search several string and convert into a single line for each search string using awk command AIX?.

I need to search the file using strings "Request Type" , " Request Method" , "Response Type" and by using result set find the xml tags and convert into a single line?. below are the scenarios. Cat test Nov 10, 2012 5:17:53 AM INFO: Request Type Line 1.... (5 Replies)
Discussion started by: laknar
5 Replies

9. Shell Programming and Scripting

Search string within a file and list common words from the line having the search string

Hi, Need your help for this scripting issue I have. I am not really good at this, so seeking your help. I have a file looking similar to this: Hello, i am human and name=ABCD. How are you? Hello, i am human and name=PQRS. I am good. Hello, i am human and name=ABCD. Good bye. Hello, i... (12 Replies)
Discussion started by: royzlife
12 Replies

10. UNIX for Dummies Questions & Answers

Search for a string,delete the line and replace with new string in a file

Hi Everyone, I have a requirement in ksh where i have a set of files in a directory. I need to search each and every file if a particular string is present in the file, delete that line and replace that line with another string expression in the same file. I am very new to unix. Kindly help... (10 Replies)
Discussion started by: Pradhikshan
10 Replies
All times are GMT -4. The time now is 10:51 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy