awk with multiple files


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting awk with multiple files
# 1  
Old 04-07-2009
awk with multiple files

I have 2 files

first is category:
1:Phone
2:Keyboard
3:Printer
4:Scanner
5:Mouse

the second is product:
1:iphone:1:.....
2:blackberry:1:.....
3:Mitsumi:2:.....
4:abc:5:.....
5:def:4:.....
6:noi:3:.....

which bold numbers are "foreign key" in product file and they are "primary key" of category file

Now, the user want to search product by category (they enter category name and i need return product in that category search in product file), i did:

Code:
keyword=`awk -F ":" ' $2~/'"${userkeywordinput}"'/ { print $1 }' category`

awk -F ":" '$3~'"${keyword}"' { print $0 }' product`

search successfull but the results were duplicated

Please help me to get the right result Smilie
Thank you.

Last edited by WuZun; 04-07-2009 at 12:10 PM..
# 2  
Old 04-07-2009
Try something like this:

Code:
awk -F ":" -v var="Phone" 'NR==FNR && $2==var {s=$1;next} $3==s ' file1 file2

Regards
# 3  
Old 04-07-2009
i replaced var="Phone" to var=${userkeywordinput}
sorry but it not work, it just print two files category and product to the result

i want if the user input Scanner and the result is all product that have column 3 is 4, because in category file the id of scanner is 4

anyway, many thanks Franklin52
# 4  
Old 04-07-2009
anyone help me, i really need it
thanks
# 5  
Old 04-07-2009
Please don't bump up questions, that's agains the rules.

There was something wrong with the first solution (not tested), it should be something like:

Code:
userkeywordinput="Scanner"

awk -F ":" -v var="${userkeywordinput}" 'NR==FNR{if($2==var){s=$1}next}$3==s' file1 file2

Regards
# 6  
Old 04-08-2009
thank you
it worked

sorry about bump thread
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

awk, multiple files input and multiple files output

Hi! I'm new in awk and I need some help. I have a folder with a lot of files and I need that awk do something in each file and print a new file with the output. The input file name should be modified when I print the outpu files. Thanks in advance for help! :-) ciao (5 Replies)
Discussion started by: gabrysfe
5 Replies

2. Shell Programming and Scripting

Awk with Multiple files

Hello, I wanted to know the best way to do some matching between two files. I am currently using awk. Example Question: If column 4 from file A is contained in column 1 from file B. Print the whole row from file A of mix of information from both files. i.e. File A ... (1 Reply)
Discussion started by: rafir
1 Replies

3. Shell Programming and Scripting

perform 3 awk commands to multiple files in multiple directories

Hi, I have a directory /home/datasets/ which contains a bunch (720) of subdirectories called hour_1/ hour_2/ etc..etc.. in each of these there is a single text file called (hour_1.txt in hour_1/ , hour_2.txt for hour_2/ etc..etc..) and i would like to do some text processing in them. Each of... (20 Replies)
Discussion started by: amarn
20 Replies

4. UNIX for Dummies Questions & Answers

awk in multiple files

Hello all, I have two files: one that looks like this string1 string2 string3 string6 and another that looks like this Wstring1 apple Wstring2 vegetable Wstring3 mouse Wstring4 (3 Replies)
Discussion started by: FelipeAd
3 Replies

5. UNIX for Dummies Questions & Answers

Using AWK: Extract data from multiple files and output to multiple new files

Hi, I'd like to process multiple files. For example: file1.txt file2.txt file3.txt Each file contains several lines of data. I want to extract a piece of data and output it to a new file. file1.txt ----> newfile1.txt file2.txt ----> newfile2.txt file3.txt ----> newfile3.txt Here is... (3 Replies)
Discussion started by: Liverpaul09
3 Replies

6. UNIX for Dummies Questions & Answers

best method of replacing multiple strings in multiple files - sed or awk? most simple preferred :)

Hi guys, say I have a few files in a directory (58 text files or somthing) each one contains mulitple strings that I wish to replace with other strings so in these 58 files I'm looking for say the following strings: JAM (replace with BUTTER) BREAD (replace with CRACKER) SCOOP (replace... (19 Replies)
Discussion started by: rich@ardz
19 Replies

7. Shell Programming and Scripting

extract multiple cloumns from multiple files; skip rows and include filenames; awk

Hello, I am trying to write a bash shell script that does the following: 1.Finds all *.txt files within my directory of interest 2. reads each of the files (25 files) one by one (tab-delimited format and have the same data format) 3. skips the first 10 rows of the file 4. extracts and... (4 Replies)
Discussion started by: manishabh
4 Replies

8. UNIX for Dummies Questions & Answers

awk multiple files

Hi there! I'm with a problem because I'm working on a script to do a calculation of a mean using multiple files with 3 columns and N-lines. My input are like this File1 0001 0023 5 0120 0376 6 0412 3412 3 ... File2 0001 0023 3 0120 0376 nan 0412 3412 7 ... (1 Reply)
Discussion started by: philstar
1 Replies

9. Shell Programming and Scripting

Multiple search string in multiple files using awk

Hi, filenames: contains name of list of files to search in. placelist contains the names of places to be searched in all files in "filenames" for i in $(<filenames) do egrep -f placelist $i if ] then echo $i fi done >> outputfile Output i am getting: (0 Replies)
Discussion started by: pinnacle
0 Replies

10. Shell Programming and Scripting

Splitting input files into multiple files through AWK command

Hi, I needs to split *.txt files from single directory depends on the some mutltiple input values. i have wrote the code like below for file in *.txt do grep -i -h "value1|value2" $file > $file; done. My requirment is more input values needs to be given in grep; let us say 50... (3 Replies)
Discussion started by: arund_01
3 Replies
Login or Register to Ask a Question

Featured Tech Videos