Search a string,get line and replace with second field


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Search a string,get line and replace with second field
# 8  
Old 05-18-2012
Quote:
Originally Posted by greet_sed
Thanks again for detailed explanation.

If lines are not in same order i get wrong output because search is not based on field 2 ( ie /home/USER/Desktop , /home/USER/Exe , /home/USER/OP1 etc )

For example if file2 contains the following:
Code:
<path source="/home/USER/Desktop" value="/home/USER/XYZ/Desktop">
    <key value="customer/priority"/>
    <scm tool="toolname/revision"/>
  </path>

<path source="/home/USER/Exe" value="/home/USER/XYZ/ABC/Exe">
    <key value="customer/priority4"/>
    <scm tool="toolname/revision"/>
  </path>

<path source="/home/USER/OP1" value="/home/USER/XYZ/ABC/OP1">
    <key value="customer/priority2"/>
    <scm tool="toolname/revision"/>
  </path>

I get wrong output as :
Code:
<type source="/home/USER/Desktop" Dest="/home/USER/DIR1/Desktop" URL="ref/img/customer/priority"/>
<type source="/home/USER/OP1" URL="ref/img/customer/priority4"/> 
<type source="/home/USER/Exe" Dest="/home/USER/DIR1/Exe" URL="ref/img/customer/priority2"/>

ok i modified some Smilie
Code:
# awk 'NR==FNR{if($0~/path source/){x=gensub(".*\\/(.*)\">","\\1",$0);getline;split($0,a,"=");sub("^\"","",a[2]);s[x]=a[2]}}
NR!=FNR{for(x in s)if($0~x)sub("URL=.*","URL="xx s[x],$0);print}' xx="\"ref/img/" file2 file1
<type source="/home/USER/Desktop" Dest="/home/USER/DIR1/Desktop" URL="ref/img/customer/priority"/>
<type source="/home/USER/OP1" URL="ref/img/customer/priority2"/>
<type source="/home/USER/Exe" Dest="/home/USER/DIR1/Exe" URL="ref/img/customer/priority4"/>

regards
ygemici
This User Gave Thanks to ygemici For This Post:
# 9  
Old 05-18-2012
Thanks Mirni & ygemici.

Both solutions works.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. 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

2. 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

3. 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

4. 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

5. 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

6. 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

7. 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

8. 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

9. 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

10. 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
Login or Register to Ask a Question