Visit Our UNIX and Linux User Community


grep, awk, nawk combo


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting grep, awk, nawk combo
# 1  
Old 09-28-2009
Question grep, awk, nawk combo

I have 2 files:

File1
"aa","server","001-9031234-001",

File2
001-9031234-001|12345

Both files have many lines of text. Each line needs to be evaluated. I need to look at the value of the third field in File 1. Then look for that same value in File 2 and assign the value of Field 2 in that file to num.

so num for this example would equal 12345. The value of num would then be input back into File1 so File1 would then look like
"aa","server","001-9031234-001","12345",

Smilie
Thanks,
# 2  
Old 09-28-2009
Hi,

Try this:

Code:
 awk -F"[,|]" 'NR==FNR{s["\"" $1 "\""]=$2;next}{printf "%s\"%s\"\n", $0, s[$3]}' file2 file1

# 3  
Old 09-28-2009
When I try that, the output looks like it appends File2 to File 1.

#more test.sh
#!/usr/bin/sh
awk -F"[,|]" 'NR==FNR{s["\"" $1 "\""]=$2;next}{printf "%s\"%s\"\n", $0, s[$3]}' File2 File1

then I run ./test.sh /tmp/test.txt
# 4  
Old 09-28-2009
It works on the sample file you gave on your first post. If real files differ please post realistic sample files.

Also, just try to run the command like this:
Code:
$ awk -F"[,|]" 'NR==FNR{s["\""$1"\""]=$2;next}{printf "%s\"%s\"\n", $0, s[$3]}' file2 file1

# 5  
Old 09-28-2009
Ah ha. I am running solaris and if you use the awk in /usr/xpg4/bin, you are correct it does work. The awk in /usr/bin does not work.

Thanks so much!
SmilieSmilieSmilieSmilieSmilieSmilie

---------- Post updated at 04:46 PM ---------- Previous update was at 04:16 PM ----------

Quick question - which part of the awk tells it to append it to the end of the file. What if you wanted it to be say the second field in the file?

---------- Post updated at 04:51 PM ---------- Previous update was at 04:46 PM ----------

Quick question:
which part of the awk tells it to append it to the end of the file. What if you wanted it to be say the second field in the file?
# 6  
Old 09-28-2009
Quote:
Originally Posted by scriptr2be

[/COLOR]Quick question:
which part of the awk tells it to append it to the end of the file. What if you wanted it to be say the second field in the file?
Code:
{printf "%s\"%s\"\n", $0, s[$3]}


Previous Thread | Next Thread
Test Your Knowledge in Computers #542
Difficulty: Medium
A globally scoped variable is invalid throughout the entire program.
True or False?

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Use of -r, grep, nawk in script

Hello Friends, I am new to unix shell, need to understand the meaning of few cmds in below script, #!/usr/bin/ksh FTP_FILE_NAME="$1" if then grep "TRLR@@@@@@" $FTP_FILE_NAME | nawk -F"" '{print $2}' else echo "0" fi what is the use of -r, grep, nawk & -F in above script. Why... (2 Replies)
Discussion started by: DK2014
2 Replies

2. Shell Programming and Scripting

Awk,nawk Help please

Hi Guys, I am in need of some help; I have an xml message file which contains personal details as shown below: , message=, message=, message=, message=, message=, message= I want to use nawk to parse these xml messages but I am new to awk and nawk. What I want is to get output... (7 Replies)
Discussion started by: James_Owen
7 Replies

3. UNIX for Dummies Questions & Answers

Help me to know about awk and nawk

Hi everyone, i am new to unix , so i want to know what is the use of awk and nawk. because in most of the place this cmds were used. so, if anyone provied the basic idea of this cmds, it will be much helpfull for me . . .. Thnks in Advance :) (9 Replies)
Discussion started by: natraj005
9 Replies

4. Shell Programming and Scripting

grep / nawk issue

I have a report which contains the following: Count Value % 47 69.12 18 26.47 3 4.41 I want to grep the total on the bottom brackets and store in a variable. However this may have a different figure everyday. To read the i do: ... (1 Reply)
Discussion started by: Pablo_beezo
1 Replies

5. Shell Programming and Scripting

comparing awk and nawk

Hi Guys, i tried these two commands. First in awk and nawk. The nawk command is running fine but the awk command is throwing error. What is wrong with the awk command. There are lot of awk commands running fine in my system d003:/usr/local/dsadm/dsprod>nawk 'NR = 1 {print " "$0}' a.txt ... (6 Replies)
Discussion started by: mac4rfree
6 Replies

6. Shell Programming and Scripting

how to access values of awk/nawk variables outside the awk/nawk block?

i'm new to shell scripting and have a problem please help me in the script i have a nawk block which has a variable count nawk{ . . . count=count+1 print count } now i want to access the value of the count variable outside the awk block,like.. s=`expr count / m` (m is... (5 Replies)
Discussion started by: saniya
5 Replies

7. UNIX for Dummies Questions & Answers

How to use awk instead of nawk?

Hi all, I can run the following script using nawk..However, I find that teh server dun support nawk.. May I know how to change teh script to use awk such that it will work? Very urgent.. thx! nawk 'BEGIN {FS=OFS=","} NR==FNR{arr=$2;next} $0 !~ "Documentation"{print $0;next} ... (2 Replies)
Discussion started by: kinmak
2 Replies

8. Shell Programming and Scripting

nawk -v to awk

hi, i have the command nawk -v i want to use it equivalent in awk? any help please :) (2 Replies)
Discussion started by: kamel.seg
2 Replies

9. UNIX for Dummies Questions & Answers

help with Awk or nawk

Can anyone explain to me why the first line doesn't work and the second seems to work fine. I am trying to find all occurances of text within a certain column (col 13) that start with the character V, I suppose it sounds simple but I have tried using the following but don't really understand what... (2 Replies)
Discussion started by: Gerry405
2 Replies

Featured Tech Videos