column based search


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting column based search
# 1  
Old 06-29-2007
column based search

Hi,
I need to search one file based on the entry from another;
eg.
file1 has entries;

45654
34768
12345

File2 has entries

23234 somestring 4312
45654 somestring 34768
12345 somestring 45654

so I need to pick first entry in file1 which eg. '45654' and search for this entry only in 'column 1' of File2. Then save the 3rd entry (column 3) from the same line to a variable. (to be used later).
Any help would be appreciated.
# 2  
Old 06-29-2007
Code:
$ ls file?
file1  file2
$ cat file1
45654
34768
12345
$ cat file2
23234 somestring 4312
45654 somestring 34768
12345 somestring 45654
$ join -o 2.3 file1 file2
34768

hope this helps,

-c
# 3  
Old 06-29-2007
Craig,
Your solution is missing:
45654

Keep in mind that 'join' assumes both files are sorted.

To fix your problem:
Code:
sort file1 > $$temp1
sort file2 > $$temp2
join -o 2.3 $$temp1 $$temp2

PS: I don't think this will resolve 'user_007' issue.
# 4  
Old 06-29-2007
Here is a solution to put the values into variables:
Code:
sort file1 > $$temp1
sort file2 > $$temp2
join -o 1.1 2.3 $$temp1 $$temp2 | \
while read mLine
do
  set -- $mLine
  echo "Pattern = "$1" Result = "$2
done
rm -f $$*

# 5  
Old 06-29-2007
Column based search

Thanks for the responses guys.
But 'joining' isnt going to resolve my problem.

What i am trying to do is to pick one item at a time from file1 and then search the corresponding entry in file2 and save the associated value in column3 of the file 2 in a variable X.

$ cat file1
45654
34768
12345
$ cat file2
23234 somestring 4312
45654 somestring 34768
12345 somestring 45654

So e.g. my first entry in File1 is '45654'.
The corresponding value in Column3 of File2 is 34768.
So i wanted to save this value in a variable X.
# 6  
Old 06-29-2007
User_007,
My solution does exactly what you are looking for.
# 7  
Old 06-30-2007
You can do something like that :

Code:
while read item1
do
   X=$(awk -v value1="$item1" '$1 == value1 { print $3 }' file2)
done < file1

This solution is acceptable only if file1 contains very few records because the file file2 is read for each record of file1.

After having read the value in the variable X, what do you want to do ?
If you don't want to update the file file2, the best way is to use the Shell_Life' solution ( item1=$1 and X=$2 ).
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Awk/sed summation of one column based on some entry in first column

Hi All , I am having an input file as stated below Input file 6 ddk/djhdj/djhdj/Q 10 0.5 dhd/jdjd.djd.nd/QB 01 0.5 hdhd/jd/jd/jdj/Q 10 0.5 512 hd/hdh/gdh/Q 01 0.5 jdjd/jd/ud/j/QB 10 0.5 HD/jsj/djd/Q 01 0.5 71 hdh/jjd/dj/jd/Q 10 0.5 ... (5 Replies)
Discussion started by: kshitij
5 Replies

2. Shell Programming and Scripting

Script to find string based on pattern and search for its corresponding rows in column

Experts, Need your support for this awk script. we have only one input file, all these column 1 and column 2 are in same file and have to do lookup for values in one file(column1 and column2) but output we need in another file Need to grep row whose string contains 9K from column 1. When found... (6 Replies)
Discussion started by: as7951
6 Replies

3. Shell Programming and Scripting

Get maximum per column from CSV file, based on date column

Hello everyone, I am using ksh on Solaris 10 and I'm gathering data in a CSV file that looks like this: 20170628-23:25:01,1,0,0,1,1,1,1,55,55,1 20170628-23:30:01,1,0,0,1,1,1,1,56,56,1 20170628-23:35:00,1,0,0,1,1,2,1,57,57,2 20170628-23:40:00,1,0,0,1,1,1,1,58,58,2... (6 Replies)
Discussion started by: ejianu
6 Replies

4. Shell Programming and Scripting

Sum column values based in common identifier in 1st column.

Hi, I have a table to be imported for R as matrix or data.frame but I first need to edit it because I've got several lines with the same identifier (1st column), so I want to sum the each column (2nd -nth) of each identifier (1st column) The input is for example, after sorted: K00001 1 1 4 3... (8 Replies)
Discussion started by: sargotrons
8 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

Calculate 2nd Column Based on 1st Column

Dear All, I have input file like this. input.txt CE2_12-15 3950.00 589221.0 9849709.0 768.0 CE2_12_2012 CE2_12-15 3949.00 589199.0 9849721.0 768.0 CE2_12_2012 CE2_12-15 3948.00 589178.0 9849734.0 768.0 CE2_12_2012 CE2_12-52 1157.00 ... (3 Replies)
Discussion started by: attila
3 Replies

7. Shell Programming and Scripting

Filtering lines for column elements based on corresponding counts in another column

Hi, I have a file like this ACC 2 2 21 aaa AC 443 3 22 aaa GCT 76 1 33 xxx TCG 34 2 33 aaa ACGT 33 1 22 ggg TTC 99 3 44 wee CCA 33 2 33 ggg AAC 1 3 55 ddd TTG 10 1 22 ddd TTGC 98 3 22 ddd GCT 23 1 21 sds GTC 23 4 32 sds ACGT 32 2 33 vvv CGT 11 2 33 eee CCC 87 2 44... (1 Reply)
Discussion started by: polsum
1 Replies

8. Shell Programming and Scripting

to add special tag to a column based on column condition

Hi All, I have following html code <TR><TD>9</TD><TD>AR_TVR_TBS </TD><TD>85000</TD><TD>39938</TD><TD>54212</TD><TD>46</TD></TR> <TR><TD>10</TD><TD>ASCV_SMY_TBS </TD><TD>69880</TD><TD>33316</TD><TD>45698</TD><TD>47</TD></TR> <TR><TD>11</TD><TD>ARC_TBS ... (9 Replies)
Discussion started by: ckwan
9 Replies

9. Shell Programming and Scripting

need to remove duplicates based on key in first column and pattern in last column

Given a file such as this I need to remove the duplicates. 00060011 PAUL BOWSTEIN ad_waq3_921_20100826_010517.txt 00060011 PAUL BOWSTEIN ad_waq3_921_20100827_010528.txt 0624-01 RUT CORPORATION ad_sade3_10_20100827_010528.txt 0624-01 RUT CORPORATION ... (13 Replies)
Discussion started by: script_op2a
13 Replies

10. UNIX for Dummies Questions & Answers

Select records based on search criteria on first column

Hi All, I need to select only those records having a non zero record in the first column of a comma delimited file. Suppose my input file is having data like: "0","01/08/2005 07:11:15",1,1,"Created",,"01/08/2005" "0","01/08/2005 07:12:40",1,1,"Created",,"01/08/2005"... (2 Replies)
Discussion started by: shashi_kiran_v
2 Replies
Login or Register to Ask a Question