No output


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting No output
# 1  
Old 08-31-2009
No output

All,
I have a small program which reads 2 text files. Text files has the below layout
dictionary
C_BOX LB_BOX
C_CHAIR LB_CHAIR
C_HAT LB_HAT

lookup
C_HAT
C_BOX
C_CHAIR

The program is below
Code:
#!/bin/bash
DICT=$2
exec < $1
while read f1
do
nawk -v fld=${f1} '/$1=fld/ { print fld $2}' $DICT
done

What I am trying is achieve is to generate a third file which will have the output.

file 3

C_HAT LB_HAT
C_BOX LB_BOX
C_CHAIR LB_CHAIR

I want to get the corresponding name and value for the "file1" fields from "dictionary". The sequence of occurence should also be maintained as it is in "file1"

thanks in advance...
# 2  
Old 08-31-2009
Try...
Code:
 
nawk 'NR==FNR{arr[$1]=$2;next}{for(i in arr)if(i==$1)print $1,arr[i]}' dict lookup

# 3  
Old 08-31-2009
Try something like:
Code:
nawk -v fld="${f1}" '$1==fld { print fld" "$2}' $DICT

your rest code remains same to avoid changing the logic
# 4  
Old 08-31-2009
Use only awk
Code:
awk 'NR==FNR{a[$1]=$0;next}{$0=a[$1]}1' dictionary lookup > file3

# 5  
Old 08-31-2009
superb!!!! thanks guys Smilie
# 6  
Old 08-31-2009
One way to do it in Perl:

Code:
$
$ cat dictionary
C_BOX LB_BOX
C_CHAIR LB_CHAIR
C_HAT LB_HAT
$
$ cat lookup
C_HAT
C_BOX
C_CHAIR
$
$ perl -ne 'BEGIN {open(F,"dictionary");while(<F>){chomp; split; $x{$_[0]}=$_[1]} close(F)}
>           chomp; printf("%s %s\n",$_,$x{$_})' lookup
C_HAT LB_HAT
C_BOX LB_BOX
C_CHAIR LB_CHAIR
$
$

tyler_durden
# 7  
Old 08-31-2009
something like this :

Code:
awk 'NR==FNR {a[$1]=$2;next } {if($1 in a) {b[$1]=$1" "a[$1];c[++n]=$1;next} } END { for(i=1;i<=n;i++) {print b[c[i]]}}' file1 file2

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Redirect script output to a file and mail the output

Hi Guys, I want to redirect the output of 3 scripts to a file and then mail the output of those three scripts. I used below but it is not working: OFILE=/home/home1/report1 echo "report1 details" > $OFILE =/home/home1/1.sh > $OFILE echo... (7 Replies)
Discussion started by: Vivekit82
7 Replies

2. Red Hat

Command understanding the output file destination in case of standard output!!!!!

I ran the following command. cat abc.c > abc.c I got message the following message from command cat: cat: abc.c : input file is same as the output file How the command came to know of the destination file name as the command is sending output to standard file. (3 Replies)
Discussion started by: ravisingh
3 Replies

3. Shell Programming and Scripting

Displaying log file pattern output in tabular form output

Hi All, I have result log file which looks like this (below): from the content need to consolidate the result and put it in tabular form 1). Intercomponents Checking Passed: All Server are passed. ====================================================================== 2). OS version Checking... (9 Replies)
Discussion started by: Optimus81
9 Replies

4. Shell Programming and Scripting

script to mail monitoring output if required or redirect output to log file

Below script perfectly works, giving below mail output. BUT, I want to make the script mail only if there are any D-Defined/T-Transition/B-Broken State WPARs and also to copy the output generated during monitoring to a temporary log file, which gets cleaned up every week. Need suggestions. ... (4 Replies)
Discussion started by: aix_admin_007
4 Replies

5. Shell Programming and Scripting

Awk script to run a sql and print the output to an output file

Hi All, I have around 900 Select Sql's which I would like to run in an awk script and print the output of those sql's in an txt file. Can you anyone pls let me know how do I do it and execute the awk script? Thanks. (4 Replies)
Discussion started by: adept
4 Replies

6. Shell Programming and Scripting

awk: round output or delimit output of arithmatic string

I have a file with the following content. > cat /tmp/internetusage.txt 6709.296322 30000 2/7/2010 0.00I am using the following awk command to calculate a percentage from field 1 and 2 from the file. awk '{ print $1/$2*100 }' /tmp/internetusage.txt This outputs the value "22.3643" as a... (1 Reply)
Discussion started by: jelloir
1 Replies

7. Shell Programming and Scripting

Converting line output to column based output

Hi Guys, I am trying to convert a file which has a row based output to a column based output. My original file looks like this: 1 2 3 4 5 6 1 2 3 1 2 3 (8 Replies)
Discussion started by: npatwardhan
8 Replies

8. Shell Programming and Scripting

top output for six processes with the same name, output changed from column to row

Hi, I have a system under test, and I use a script that does a ps. The output, is in the following format, it's basically the timestamp, followed by the rss and vsize. 09:03:57 68404 183656 68312 181944 69860 217360 67536 182564 69072 183172 69032 199276 09:04:27 68752 183292 70000 189020... (5 Replies)
Discussion started by: Bloke
5 Replies

9. Shell Programming and Scripting

Expect - Interact output hangs when large output

Hello, I have a simple expect script I use to ssh to a workstation. I then pass control over to the user with interact. This script works fine on my HP and Mac, but on my Linux Desktop, I get a problem where the terminal hangs when ever I execute a command in the interact session that requires a... (0 Replies)
Discussion started by: natedog
0 Replies

10. Shell Programming and Scripting

how to make a line BLINKING in output and also how to increase font size in output

how to make a line BLINKING in output and also how to increase font size in output suppose in run a.sh script inside echo "hello world " i want that this should blink in the output and also the font size of hello world should be big .. could you please help me out in this (3 Replies)
Discussion started by: mail2sant
3 Replies
Login or Register to Ask a Question