Populate Column Value Using AWK


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Populate Column Value Using AWK
# 1  
Old 08-25-2012
Populate Column Value Using AWK

Hi All,

I am trying to find out awk one liner for the following requirement but failed in doing that.

HTML Code:
I have two files. 

Content of first file:

file1.txt      SUCCESS          A  
file2.txt      SUCCESS          B
file3.txt      SUCCESS          A
file4.txt      FAIL                A
file5.txt      SUCCESS          C
file6.txt      FAIL                B


Content of second file:

A        DEL
B        TEL
C        BSMS
I wish to populate the fourth column of first file based on the values mentioned in secodn file.

Your help is highly appreciated

Thanks and Regards
Angshuman
# 2  
Old 08-25-2012
Code:
awk 'NR==FNR{a[$1]=$2; next} {for(x in a){if($3==x){print $0,a[x]}}}' file2 file1

# 3  
Old 08-25-2012
Knowing nothing about your OS nor awk- version, this might work
Code:
awk 'NR==FNR{a[$1]=$2;next}  {print $1,$2,$3,a[$3]}' OFS="\t" file2 file1

Adapt OFS after your fancy.

(You may replace print $1..$3 by balajesuri's print $0 if you don't want OFS to be the same all over the line)
# 4  
Old 08-25-2012
Code:
awk 'FNR==NR{a[$1]=$2;next}($4=a[$3])||1' file2 file1

# 5  
Old 08-25-2012
Code:
awk 'NR==FNR{a[$1]=$2;next}(a[$3]){$4=a[$3];print}' file2 file1

# 6  
Old 08-25-2012
Quote:
Originally Posted by raj_saini20
Code:
awk 'NR==FNR{a[$1]=$2;next}(a[$3]){$4=a[$3];print}' file2 file1

Don't you think you are preventing entire lines from file1 from being printed if the 3rd field is not in the look-up file?
# 7  
Old 08-25-2012
@elixir: ($4=a[$3])||1 would be equivalent to {$4=a[$3]}1, no?
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Need awk or Shell script to compare Column-1 of two different CSV files and print if column-1 matche

Example: I have files in below format file 1: zxc,133,joe@example.com cst,222,xyz@example1.com File 2 Contains: hxd hcd jws zxc cst File 1 has 50000 lines and file 2 has around 30000 lines : Expected Output has to be : hxd hcd jws (5 Replies)
Discussion started by: TestPractice
5 Replies

2. Shell Programming and Scripting

awk script to append suffix to column when column has duplicated values

Please help me to get required output for both scenario 1 and scenario 2 and need separate code for both scenario 1 and scenario 2 Scenario 1 i need to do below changes only when column1 is CR and column3 has duplicates rows/values. This inputfile can contain 100 of this duplicated rows of... (1 Reply)
Discussion started by: as7951
1 Replies

3. Shell Programming and Scripting

awk to Sum columns when other column has duplicates and append one column value to another with Care

Hi Experts, Please bear with me, i need help I am learning AWk and stuck up in one issue. First point : I want to sum up column value for column 7, 9, 11,13 and column15 if rows in column 5 are duplicates.No action to be taken for rows where value in column 5 is unique. Second point : For... (1 Reply)
Discussion started by: as7951
1 Replies

4. Shell Programming and Scripting

Problems with awk (fatal error) and paste (two variables into one column-by-column)

Hello, I have a script extracting columns of useful numbers from a data file, and manipulating the numbers with awk commands. I have problems with my script... 1. There are two lines assigning numbers to $BaseForAveraging. If I use the commented line (the first one) and let the second one... (9 Replies)
Discussion started by: vgbraymond
9 Replies

5. Shell Programming and Scripting

awk to sum a column based on duplicate strings in another column and show split totals

Hi, I have a similar input format- A_1 2 B_0 4 A_1 1 B_2 5 A_4 1 and looking to print in this output format with headers. can you suggest in awk?awk because i am doing some pattern matching from parent file to print column 1 of my input using awk already.Thanks! letter number_of_letters... (5 Replies)
Discussion started by: prashob123
5 Replies

6. Shell Programming and Scripting

awk Print New Column For Every Two Lines and Match On Multiple Column Values to print another column

Hi, My input files is like this axis1 0 1 10 axis2 0 1 5 axis1 1 2 -4 axis2 2 3 -3 axis1 3 4 5 axis2 3 4 -1 axis1 4 5 -6 axis2 4 5 1 Now, these are my following tasks 1. Print a first column for every two rows that has the same value followed by a string. 2. Match on the... (3 Replies)
Discussion started by: jacobs.smith
3 Replies

7. Shell Programming and Scripting

awk or sed: change the color of a column w/o screwing up column spacing

Hey folks. I wrote a little awk script that summarizes /proc/net/dev info and then pipes it to the nix column command to set up column spacing appropriately. Here's some example output: Iface RxMBytes RxPackets RxErrs RxDrop TxMBytes TxPackets TxErrs TxDrop bond0 9 83830... (3 Replies)
Discussion started by: ryran
3 Replies

8. Shell Programming and Scripting

AWK script to create max value of 3rd column, grouping by first column

Hi, I need an awk script (or whatever shell-construct) that would take data like below and get the max value of 3 column, when grouping by the 1st column. clientname,day-of-month,max-users ----------------------------------- client1,20120610,5 client2,20120610,2 client3,20120610,7... (3 Replies)
Discussion started by: ckmehta
3 Replies

9. Shell Programming and Scripting

for each different entry in column 1 extract maximum values from column 2 in unix/awk

Hello, I have 2 columns (1st column has multiple entries but the corresponding values in the column 2 may be the same or different.) however I want to extract unique values for each entry in column 1 by assigning the max value from column 2 SDF4 -0.211654 SDF4 0.978068 ... (1 Reply)
Discussion started by: Diya123
1 Replies

10. Shell Programming and Scripting

populate a bash variable from an awk operation

Hi, I'm trying to populate bash script variable, data_size with the size of the largest file in my current directory data_size=$(ls -lS | grep -v "total" | head -1) | awk '{ print $5 }' I've tried adding an echo before the call to awk data_size=$(ls -l | grep -v "total" | head -1) |... (2 Replies)
Discussion started by: mark_s_g
2 Replies
Login or Register to Ask a Question