Retrieve printer detail - AWK


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Retrieve printer detail - AWK
# 1  
Old 05-30-2012
Question Retrieve printer detail - AWK

Hi All,

For some reason, I need to have the printer detail from the AIX. Following are the part of /etc/qconfig and /etc/hosts. Can any one of you please help me with an awk some other option to get the detail ? I have mentioned the required output format at the end.

/etc/qconfig
Code:
s63lb1:
   device = @s63lb1
   host = s63lb1
   rq = zebra
   s_statfilter = /usr/lib/lpd/aixshort
   l_statfilter = /usr/lib/lpd/aixlong
@s63lb1:
   header = never
   trailer = never
   access = both
   backend = /usr/lib/lpd/pio/etc/piorlfb -f !
s63lb2:
   device = @s63lb2
   host = s63lb2
   rq = zebra
   s_statfilter = /usr/lib/lpd/aixshort
   l_statfilter = /usr/lib/lpd/aixlong
@s63lb2:
   header = never
   trailer = never
   access = both
   backend = /usr/lib/lpd/pio/etc/piorlfb -f !
s10comp2:
   device = @s10comp2
   host = s10comp2
   rq = HPLaserj
   s_statfilter = /usr/lib/lpd/aixshort
   l_statfilter = /usr/lib/lpd/aixlong
@s10comp2:
   header = never
   trailer = never
   access = both
   backend = /usr/lib/lpd/pio/etc/piorlfb -f !

/etc/hosts
Code:
192.168.100.122 s63lb1
192.168.100.123 s10comp2
192.168.100.124 roh_elc
192.168.100.125 s63lb2
192.168.100.126 roh_evl2
192.168.100.127 roh_lh750c
192.168.100.128 roh_star2
192.168.100.129 roh_arc2k2

Required out put format
Code:
Host_name   ip_address    RQ_Name
s63lb1      192.168.100.122   zebra
s63lb2     192.168.100.125 zebra 
s10comp2    192.168.100.123 HPLaserj

Thank you in advance ...
Regards

Last edited by Franklin52; 05-30-2012 at 03:59 AM.. Reason: Please use code tags for data and code samples
# 2  
Old 05-30-2012
Try:
Code:
awk 'NR==FNR{a[$2]=$1;next}/host/{h=$3}/rq/{r=$3}/^@/{print h,a[h],r}' /etc/hosts /etc/qconfig

This User Gave Thanks to bartus11 For This Post:
# 3  
Old 05-30-2012
Hi sraj142,

One way:
Code:
$ cat script.awk
BEGIN {                                                                                                                                                                                                                                      
        ## Print header.                                                                                                                                                                                                                     
        printf "%-20s%-20s%-20s\n", "Host_name", "ip_address", "RQ_Name"                                                                                                                                                                     
}                                                                                                                                                                                                                                            
                                                                                                                                                                                                                                             
## Save hosts with its IPs.                                                                                                                                                                                                                  
FNR == NR {                                                                                                                                                                                                                                  
        hostname[ $2 ] = $1                                                                                                                                                                                                                  
        next                                                                                                                                                                                                                                 
}                                                                                                                                                                                                                                            
                                                                                                                                                                                                                                             
## Save host name when found a line with one field not beginning with '@'.                                                                                                                                                                   
FNR < NR && NF == 1 && substr( $1, 1, 1 ) != "@" {                                                                                                                                                                                           
        hname = substr( $1, 1, length( $1 ) - 1 )                                                                                                                                                                                            
        next;                                                                                                                                                                                                                                
}                                                                                                                                                                                                                                            
                                                                                                                                                                                                                                             
## When found an entry beginning with 'rq', print all.                                                                                                                                                                                       
FNR < NR && $1 == "rq" {                                                                                                                                                                                                                     
        printf "%-20s%-20s%-20s\n", hname, hostname[ hname ], $3                                                                                                                                                                             
}                                                                                                                                                                                                                                            
$ awk -f script.awk /etc/hosts /etc/qconfig                                                                                                                                                                                                      
Host_name           ip_address          RQ_Name                                                                                                                                                                                              
s63lb1              192.168.100.122     zebra                                                                                                                                                                                                
s63lb2              192.168.100.125     zebra                                                                                                                                                                                                
s10comp2            192.168.100.123     HPLaserj

# 4  
Old 05-30-2012
Code:
# awk 'BEGIN{printf "%-10s%20s%10s\n","Host_name","ip_address","RQ_Name"}{if(/^s/){s=$0;while(getline){if(/^@/)break;if(/rq/)s=s $0};
gsub(": *|rq =*","",s);host[x++]=s;next}}NR!=FNR{for(i=0;i<x;i++){split(host[i],b);if(b[1]~$2)printf "%-10s%20s%10s\n", $2,$1,b[2]}
}' /etc/qconfig /etc/hosts
Host_name           ip_address   RQ_Name
s63lb1         192.168.100.122     zebra
s10comp2       192.168.100.123  HPLaserj
s63lb2         192.168.100.125     zebra

This User Gave Thanks to ygemici For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Homework & Coursework Questions

awk command to retrieve record 23 and 89 from UNIX file

Use and complete the template provided. The entire template must be completed. If you don't, your post may be deleted! 1. The problem statement, all variables and given/known data: I am looking for awk command to retrieve only the record number 23 and record number 89 from a unix file?... (6 Replies)
Discussion started by: rakeshp
6 Replies

2. UNIX for Beginners Questions & Answers

awk command to retrieve record 23 and 89 from UNIX file

Hi Everyone, I am looking for awk command to retrieve only the record number 23 and record number 89 from a unix file? Please let me know what is the awk command for this? Regards Rakesh (1 Reply)
Discussion started by: rakeshp
1 Replies

3. Shell Programming and Scripting

awk - To retrieve an expression from the last line containing a pattern

Hi All, I'm new on this forum, and i'm trying since several days to find out a way to retrieve a expression from the last line containing a pattern. Could you please help me with this ? E.g. The file is containing the following lines 08/05 17:33:47 STAT1 Response(22) is... (4 Replies)
Discussion started by: Antonio Fargas
4 Replies

4. Shell Programming and Scripting

Retrieve many entries using awk

Hi all I have a problem similar to someone else while getting output using awk and retrieving certain entries. From the attached sample file of big file I have to retreive following headings in columns from each drug card as there are many drug cards.. # Drug_Target_.*_Gene_Name #... (10 Replies)
Discussion started by: Priyanka Chopra
10 Replies

5. Shell Programming and Scripting

awk to retrieve the particular value from a same list of xml tags

Hi All, I have the following code in one of my xml file: <com:parameter> <com:name>secretKey</com:name> <com:value>31XA874821172E89B00B1C</com:value> </com:parameter> <com:parameter> <com:name>tryDisinfect</com:name> <com:value>false</com:value> </com:parameter> <com:parameter>... (4 Replies)
Discussion started by: mjavalkar
4 Replies

6. Shell Programming and Scripting

cut, sed, awk too slow to retrieve line - other options?

Hi, I have a script that, basically, has two input files of this type: file1 key1=value1_1_1 key2=value1_2_1 key4=value1_4_1 ... file2 key2=value2_2_1 key2=value2_2_2 key3=value2_3_1 key4=value2_4_1 ... My files are 10k lines big each (approx). The keys are strings that don't... (7 Replies)
Discussion started by: fzd
7 Replies

7. Shell Programming and Scripting

sed/awk to retrieve max year in column

I am trying to retrieve that max 'year' in a text file that is delimited by tilde (~). It is the second column and the values may be in Char format (double quoted) and have duplicate values. Please help. (4 Replies)
Discussion started by: CKT_newbie88
4 Replies

8. Shell Programming and Scripting

How to retrieve digital string using sed or awk

Hi, I have filename in the following format: YUENLONG_20070818.DMP HK_20070818_V0.DMP WANCHAI_20070820.DMP KWUNTONG_20070820_V0.DMP How to retrieve only the digital part with sed or awk and return the following format: 20070818 20070818 20070820 20070820 Thanks! Victor (3 Replies)
Discussion started by: victorcheung
3 Replies

9. Shell Programming and Scripting

How to retrieve data using awk command

I have a txt file with below data (textfile1.txt) select col1, col2 from Schema_Name.Table_Name1 select * from Schema_Name.Table_Name2 select col1, col2, col3 from Schema_Name.Table_Name3 select col1 from Schema_Name.Table_Name4 My output should look like Table_Name1 Table_Name2... (5 Replies)
Discussion started by: prasad4004
5 Replies

10. UNIX for Dummies Questions & Answers

retrieve lines using sed, grep or awk

Hi, I'm looking for a command to retrieve a block of lines using sed or grep, probably awk if that can do the job. In below example, By searching for words "Third line2" i'm expecting to retrieve the full block starting with 'BEGIN' and ending with 'END' of the search. Example: ... (3 Replies)
Discussion started by: learning_linux
3 Replies
Login or Register to Ask a Question