Sponsored Content
Top Forums Shell Programming and Scripting Use awk to replace numbers in a file with a column from another file Post 303019767 by Scrutinizer on Friday 6th of July 2018 12:43:04 AM
Old 07-06-2018
Indeed it seems like the values required to arrive at the example output are missing from the pdb file.

Perhaps something like this is intended:
Code:
awk '
  NR==FNR {                    # Read the pdb file
    A[$2]=$5                   # Store the pdb values in Array Aa as a lookup table
    next
  }

  {                            # read the txt file, use the letter c as the field separator
    split($2,SEP,/[0-9]*/)     # put all field separators of field $2 in array SEP
    n=split($2,VAL,/[^0-9]*/)  # put all values of $2 in array VAL
    for(i in VAL)              # for every value
      if(VAL[i] in A)          # if it is in column 2 of the pdb file
        VAL[i]=A[VAL[i]]       # replace it with the corresponding value of column 5 in the pdb file
    $2=SEP[1]                  # replace $2 with the first separator
    for(i=2; i<n; i++)         # enumerate over fields and separators
      $2=$2 VAL[i] SEP[i]      # reassemble $2 with the fields and separators
    print
  }
' file.pdb FS=c OFS=c file.txt


Last edited by Scrutinizer; 07-06-2018 at 01:52 AM..
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

to replace one character by numbers in a file

suppose u have a file aas P-H 123 gdg O-U 223 hdy I-Y 12 fgd K-O 333 ssa L-P 32 output shud be like that aas P123H gdg O223U hdy I12Y fgd K333O ssa L32P thanks (7 Replies)
Discussion started by: cdfd123
7 Replies

2. AIX

How to replace many numbers with one number in a file

How to replace many numbers with one number in a file. Many numbers like 444565,454678,443298,etc. i want to replace these with one number (300).Please halp me out. (2 Replies)
Discussion started by: vpandey
2 Replies

3. Shell Programming and Scripting

Need an awk for a global find/replace in a file, specific column

I am new to unix and awk/sed etc... using C-Shell. Basically, I have a fixed length file that has 4 different record types on it, H, D, V, W all in column 1. I need to change all the W's in column 1 to D's. in the entire file. The W's can be anywhere in the file and must remain in the same... (3 Replies)
Discussion started by: jclanc8
3 Replies

4. Shell Programming and Scripting

Match column 3 in file1 to column 1 in file 2 and replace with column 2 from file2

Match column 3 in file1 to column 1 in file 2 and replace with column 2 from file2 file 1 sample SNDK 80004C101 AT XLNX 983919101 BB NETL 64118B100 BS AMD 007903107 CC KLAC 482480100 DC TER 880770102 KATS ATHR 04743P108 KATS... (7 Replies)
Discussion started by: rydz00
7 Replies

5. Shell Programming and Scripting

Replace 2nd column of CSV file with numbers on line

I have a csv file with occasional multiple entries in the second column. 111111,104,07-24-2011,3.15,N, 222222,020 140,07-24-2011,10.00,N,I want the result 111111,104,07-24-2011,3.15,N, 222222,020,07-24-2011,10.00,N, 222222,140,07-24-2011,10.00,N, I know I can get the output of the second... (5 Replies)
Discussion started by: ffdstanley
5 Replies

6. Shell Programming and Scripting

Find in first column and replace the line with Awk, and output new file

Find in first column and replace the line with Awk, and output new file File1.txt"2011-11-02","Georgia","Atlanta","x","","" "2011-11-03","California","Los Angeles","x","","" "2011-11-04","Georgia","Atlanta","x","x","x" "2011-11-05","Georgia","Atlanta","x","x","" ... (4 Replies)
Discussion started by: charles33
4 Replies

7. Shell Programming and Scripting

Replace column that matches specific pattern, with column data from another file

Can anyone please help with this? I have 2 files as given below. If 2nd column of file1 has pattern foo1@a, find the matching 1st column in file2 & replace 2nd column of file1 with file2's value. file1 abc_1 foo1@a .... abc_1 soo2@a ... def_2 soo2@a .... def_2 foo1@a ........ (7 Replies)
Discussion started by: prashali
7 Replies

8. Shell Programming and Scripting

Awk: Need help replacing a specific column in a file by part of a column in another file

Hi, I have two input files as File1 : ABC:client1:project1 XYZ:client2-aa:project2 DEF:client4:proj File2 : client1:W-170:xx client2-aa:WT-04:yy client4:L-005A:zz Also, array of valid values can be hardcoded like Output : ABC:W:project1 XYZ:WT:project2 (1 Reply)
Discussion started by: aa2601
1 Replies

9. Shell Programming and Scripting

awk compare column n replace with in one file

hi Friends need to compare columns in one file where the data looks like below laptop,IBM phone,samsung car,rental user1,laptop user2,laptop user3,phone want to get output as laptop,IBM phone,samsung car,rental user1,IBM user2,IBM user3,samsung need to seach $2 in array of $1 and... (4 Replies)
Discussion started by: arun1401
4 Replies

10. Shell Programming and Scripting

Match column 8 in file 1 with column 2 in file 2 and replace..

I am looking at the NR==FNR posts and trying to use them to achieve the following but I am not getting it. I have 2 files. I want to match column 8 in file 1 with column 2 in file 2. When they match I want to replace column 9 in file 1 with column 1 in file 2. This is and extract from file 1 ... (5 Replies)
Discussion started by: kieranfoley
5 Replies
IP-NTABLE(8)							       Linux							      IP-NTABLE(8)

NAME
ip-ntable - neighbour table configuration SYNOPSIS
ip [ OPTIONS ] address { COMMAND | help } ip ntable change name NAME [ dev DEV ] PARMS PARMS := { thresh1 VAL | thresh2 VAL | thresh3 VAL | gc_int MSEC | base_reachable MSEC | retrans MSEC | gc_stale MSEC | delay_probe MSEC | queue LEN | app_probs VAL | ucast_probes VAL | mcast_probes VAL | anycast_delay MSEC | proxy_delay MSEC | proxy_queue LEN | locktime MSEC } ip ntable show [ dev DEV ] [ name NAME ] DESCRIPTION
ip ntable controls the parameters for the neighbour tables. ip ntable show - list the ip neighbour tables This commands displays neighbour table parameters and statistics. dev DEV only list the table attached to this device. name NAME only lists the table with the given name. ip ntable change - modify table parameter This command allows modifying table parameters such as timers and queue lengths. name NAME the name of the table to modify. dev DEV the name of the device to modify the table values. EXAMPLES
ip ntable show dev eth0 Shows the neighbour table (IPv4 ARP and IPv6 ndisc) parameters on device eth0. ip ntable change name arp_cache queue 8 dev eth0 Changes the number of packets queued while address is being resolved from the default value (3) to 8 packets. SEE ALSO
ip(8) AUTHOR
Manpage by Stephen Hemminger iproute2 20 Dec 2011 IP-NTABLE(8)
All times are GMT -4. The time now is 07:11 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy