Awk command help


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Awk command help
# 1  
Old 03-07-2012
Awk command help

Hi

Iam trying to do a similar functionality as vlookup in excel between two files, but my problem is that its not a column to column in match its a text within a column:

File 1:
Code:
1  yanki disable xyz123 link=xyz123
2 bravo enable asd123 link=asd123

File 2:
Code:
1  sample total lab_xyz123 lab=xyz123
4 fault total lab_qwe123 lab=qwe123

Result should be:
Code:
xyz123 lab_xyz123
asd123 Not Found


Last edited by Franklin52; 03-08-2012 at 03:38 AM.. Reason: Please use code tags for code and data samples, thank you
# 2  
Old 03-07-2012
Hi Wissam,

Try to explain it better. I don't know what vlookup is in excel.
# 3  
Old 03-07-2012
Hi

I want to match xyz123A from file 1 with lab_xyz123 in file 2, and if not found to put for example not found.

all purpose is to print both files next to next, i.e:
Code:
xyz123A    lab_xyz123
xyz123B    lab_xyz123
ced123A    Not Found
ced123C    Not Found

etc...

Hope its clear

Last edited by Franklin52; 03-08-2012 at 03:38 AM.. Reason: Code tags
# 4  
Old 03-07-2012
So the files come in the exact same order?

How is it to tell that xyz123A in file1 belongs with lab_xyz123 in file2? There's several possible columns which could tell it and I'm not sure which I'm supposed to use. Maybe if your sample data didn't have identical everything everywhere....

Last edited by Corona688; 03-07-2012 at 02:20 PM..
# 5  
Old 03-07-2012
Hi,
Try this one,
Code:
for read line;
do
   f4=`eche "$line" | cut -d" " -f4`
   awk -v r="$f4" c="lab_$f4" '{if(c == $4){print r,c;t=0;}}END{if(t != 0){print r,"Not Found";}}' file2
done <file1

Cheers,
Ranga:-)
# 6  
Old 03-08-2012
To make it more clear i exported the results using awk on one column to be more easy to match them:

File 1:
Code:
 xyz033E
 xyz033F
 xyz033G
 xyz177E
 xyz177F
 xyz177G
 xyz181A
 xyz181B
 xyz181C
 xyz181E
 xyz181F
 xyz181G

File 2:
Code:
Iub_xyz032
Iub_xyz033
Iub_xyz069
Iub_xyz070
Iub_xyz071
Iub_xyz074
Iub_xyz077
Iub_xyz088
Iub_xyz113
Iub_xyz114_PAT
Iub_xyz177_2nd_INT
Iub_xyz178
Iub_xyz179
Iub_xyz180
Iub_xyz181_INT
Iub_xyz189
Iub_xyz191
Iub_xyz197_2nd
Iub_xyz198_2nd_INT
Iub_xyz199
Iub_xyz589
Iub_xyz654
Iub_xyz681_2nd_PAT
Iub_xyz817
Iub_xyz818
Iub_xyz861
Iub_xyz952
Iub_xyz984
Iub_xyz988

Result should be:
Code:
 xyz033E	Iub_xyz033
 xyz033F	Iub_xyz033
 xyz033G	Iub_xyz033
 xyz177E	Iub_xyz177_2nd_INT
 xyz177F	Iub_xyz177_2nd_INT
 xyz177G	Iub_xyz177_2nd_INT
 xyz181A	Iub_xyz181_INT
 xyz181B	Iub_xyz181_INT
 xyz181C	Iub_xyz181_INT
 xyz181E	Iub_xyz181_INT
 xyz181F	Iub_xyz181_INT
 xyz181G	Iub_xyz181_INT

---------- Post updated 03-08-12 at 10:48 AM ---------- Previous update was 03-07-12 at 03:34 PM ----------

Any help please Smilie

Last edited by Franklin52; 03-08-2012 at 03:39 AM.. Reason: Please use code tags for code and data samples, thank you
# 7  
Old 03-08-2012
A bit crude, but works.
Code:
#! /bin/bash
while read x
do
    y=${x%?}
    grep -q "$y" output
    [ $? -eq 0 ] && echo -e "$x\t$(grep $y file2)"
done < file1

Login or Register to Ask a Question

Previous Thread | Next Thread

8 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Pass awk field to a command line executed within awk

Hi, I am trying to pass awk field to a command line executed within awk (need to convert a timestamp into formatted date). All my attempts failed this far. Here's an example. It works fine with timestamp hard-codded into the command echo "1381653229 something" |awk 'BEGIN{cmd="date -d... (4 Replies)
Discussion started by: tuxer
4 Replies

2. Shell Programming and Scripting

Multiple command execution inside awk command during xml parsing

below is the output xml string from some other command and i will be parsing it using awk cat /tmp/alerts.xml <Alert id="10102" name="APP-DS-ds_ha-140018-componentFailure-S" alertDefinitionId="13982" resourceId="11427" ctime="1359453507621" fixed="false" reason="If Event/Log Level(ANY) and... (2 Replies)
Discussion started by: vivek d r
2 Replies

3. Shell Programming and Scripting

awk command to compare a file with set of files in a directory using 'awk'

Hi, I have a situation to compare one file, say file1.txt with a set of files in directory.The directory contains more than 100 files. To be more precise, the requirement is to compare the first field of file1.txt with the first field in all the files in the directory.The files in the... (10 Replies)
Discussion started by: anandek
10 Replies

4. Shell Programming and Scripting

awk command in script gives error while same awk command at prompt runs fine: Why?

Hello all, Here is what my bash script does: sums number columns, saves the tot in new column, outputs if tot >= threshold val: > cat getnon0file.sh #!/bin/bash this="getnon0file.sh" USAGE=$this" InFile="xyz.38" Min="0.05" # awk '{sum=0; for(n=2; n<=NF; n++){sum+=$n};... (4 Replies)
Discussion started by: catalys
4 Replies

5. Shell Programming and Scripting

awk command for simple join command but based on 2 columns

input1 a_a a/a 10 100 a1 a_a 20 200 b1 b_b 30 300 input2 a_a a/a xxx yyy a1 a1 lll ppp b1 b_b kkk ooo output a_a a/a 10 100 xxx yyy (2 Replies)
Discussion started by: ruby_sgp
2 Replies

6. UNIX for Dummies Questions & Answers

Basic awk question...getting awk to act on $1 of the command itself

I have a script problem that I am not able to solve due my very limited understanding of unix/awk. This is the contents of test.sh awk '{print $1}' From the prompt if I enter: ./test.sh Hello World I would expect to see "Hello" but all I get is a blank line. Only then if I enter "Hello... (2 Replies)
Discussion started by: JasonHamm
2 Replies

7. Shell Programming and Scripting

awk/sed Command : Parse parameter file / send the lines to the ksh export command

Sorry for the duplicate thread this one is similar to the one in https://www.unix.com/shell-programming-scripting/88132-awk-sed-script-read-values-parameter-files.html#post302255121 Since there were no responses on the parent thread since it got resolved partially i thought to open the new... (4 Replies)
Discussion started by: rajan_san
4 Replies

8. Shell Programming and Scripting

assign a command line argument and a unix command to awk variables

Hi , I have a piece of code ...wherein I need to assign the following ... 1) A command line argument to a variable e.g origCount=ARGV 2) A unix command to a variable e.g result=`wc -l testFile.txt` in my awk shell script When I do this : print "origCount" origCount --> I get the... (0 Replies)
Discussion started by: sweta_doshi
0 Replies
Login or Register to Ask a Question