Find and replace using sed


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Find and replace using sed
# 22  
Old 12-14-2013
Quote:
Originally Posted by Scrutinizer
Sort by what, Akshay?
If suppose fifth field of 2nd file is not digit only alpha, and if you are replacing it with number, if you sort then number comes first right ?

Code:
$ awk 'FNR==NR{A[$1+0]; next} $3+0 in A{$5=replace}1' replace=77 FS=, OFS=, input file | sort -t',' -k5
3,5,66,K,77
3,5,66,M,77
6,9,66,J,77
1,2,33,C,B 
1,2,33,H,M 
4,8,155,H,P
5,7,44,N,U

# 23  
Old 12-14-2013
Yes that might work - provided replace contains a numerical value and the last field never does (as you mentioned)..
# 24  
Old 12-14-2013
for present example this trick will work, but it cannot be applicable for all, suppose replace is alphanumeric, Scrutinizer is there any way to sort by specific value ? for example replace=xyz12 and value=xyz12here xyz12 should come first,using only sort command
# 25  
Old 12-14-2013
Not that I know of. Another method to avoid potential memory problems would be to read the second file twice:
Code:
awk 'FNR==1{c++} c==1{A[$1+0]} c==2 && $3+0 in A{$5=replace; print} c==3 && !($3+0 in A)' replace=77 FS=, OFS=, input file file

or, using multiple lines
Code:
awk '
  FNR==1{
    c++
  }
  c==1{
    A[$1+0]
  }
  c==2 && $3+0 in A{
    $5=replace
    print
  }
  c==3 && !($3+0 in A)
' replace=77 FS=, OFS=, input file file

This User Gave Thanks to Scrutinizer For This Post:
# 26  
Old 12-14-2013
Yes., this will avoid memory problem.
This User Gave Thanks to Akshay Hegde For This Post:
# 27  
Old 12-14-2013
Last field will contain both alpa and numeric but the first option is working,

Thank you both..
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 find 2 strings and replace one

Hi Everyone, I want to find this 2 strings in a single line a file and replace the second string. this is the line i need to find <param name="user" value="CORE_BI"/> find user and CORE_BI and replace only CORE_BI with admin so finally the line should look like this. <param... (5 Replies)
Discussion started by: shajay12
5 Replies

2. Shell Programming and Scripting

Find and replace using sed

Hi All, I have a file as shown below: myFile.dat #---------------------------------------------------------- dataFile { Name shiva; location Delhi; travelID IDNumber; } 4 ( 560065 700007 100001 200002 )... (8 Replies)
Discussion started by: linuxUser_
8 Replies

3. Shell Programming and Scripting

Find and replace using sed command

The content of the file filea.txt is as follows. --------- case $HOSTNAME in aaa) DS_PARM_VALUE_SET=vsDev APT_Configuration_File=/appl/infoserver/Server/Configurations/2node.apt ;; bbb) DS_PARM_VALUE_SET=vsQA... (3 Replies)
Discussion started by: kmanivan82
3 Replies

4. Shell Programming and Scripting

Find and Replace with sed

Hi, I have a file such that: tart*)*98'bank'ksb64bank)(tart2d&f44bank I want to replace to: (only between tart and bank) tart*)*98'replaced'ksb64bank)(tart2d&f44replaced Thanks. (6 Replies)
Discussion started by: tara123
6 Replies

5. Shell Programming and Scripting

find and replace using SED

I need to do a find and replace. I tried below logic but getting warnings Could you please help? a=`echo "<!DOCTYPE aaaaa bbbbb \"sample.dtd\">"` b="<!DOCTYPE aaaaa bbbbb \" /a/b/c/datain/d_k/sample.dtd \">" echo $a | sed -e "s/$a/$b/" > c.txt getting the following error sed:... (1 Reply)
Discussion started by: kmanivan82
1 Replies

6. Shell Programming and Scripting

find and replace with sed

Hi, I have two files file1 :> val="10" port="localhost:8080" httpadd="http:\\192.168.0.239" file2 :> val=${val} port=${port} httpadd=${httpadd} fileloc=${fileloc} file3(or file2) should have following output(input from fileone) file3 (8 Replies)
Discussion started by: nitin.pathak
8 Replies

7. Shell Programming and Scripting

find and replace with SED

Hello all I have a file with a lot of records...Each one have a ID like this: 000000001 LDR L -----nam--2200217Ia-45e0 000000001 891 000000001 892 000000001 893 and so on then you have the second record: 000000002 LDR L -----nam--2200208Ia-15e0 000000002 891 000000002... (5 Replies)
Discussion started by: ldiaz2106
5 Replies

8. Shell Programming and Scripting

Help with find and Replace using sed

I have to update a paramater (dateMemLimit) present in a file, with a date (YYYYMMDD) equal to 5 days before the sysdate. The parameter will be in the following format. dateMemLimit = 20091201 Please note the blank spaces present between 'dateMemLimit' &'=' and between '='... (4 Replies)
Discussion started by: rajesh8s
4 Replies

9. Shell Programming and Scripting

find and replace using sed

Hello Everybody, I am doing something like this on Redhat Linux h=`cut -d"." -f4 file1` s=`cut -d"." -f4 file2` sed "s/$h/$s/g" file3 but this is not working but if giving constant value its working, for ex. sed "s/93/$h/g" file3 help... Thanks for looking into my question (2 Replies)
Discussion started by: arvind_aks15
2 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