12-10-2009
nawk help
Hi Gurus,
I am using a script as under :
read string
nawk -v search="$string" '
/a/,/z/ {
block = (block ? block ORS : "") $0;
}
/z/ {
if (block ~ search)
print block;
} ' <File>
nawk -v search="$string" '
/b/,/z/ {
block = (block ? block ORS : "") $0;
}
/z/ {
if (block ~ search)
print block;
} ' <File>
My question is that instead of going two times for query as string is common for both cases, can I accumulate the both the queries as under :
read string
nawk -v search="$string" '
/a|b/,/z/ {
block = (block ? block ORS : "") $0;
}
/z/ {
if (block ~ search)
print block;
} ' <File>
Pls help me.
Thnx in advance....
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
Hi,
I had this syntax and no matter what I do, I can't get it run.
err message:
run6: syntax error at line 121 : `(' unexpected
I went to line 121 and it's comment out!
All the variables passed to nawk are valid.
There are two places I suspect have the problem:
1.... (3 Replies)
Discussion started by: whatisthis
3 Replies
2. UNIX for Advanced & Expert Users
I found a command who prints x lines before and after a line who contain a searched string in a text file.
The command is :
-------------------
nawk 'c-->0;$0~s{if(b)for(c=b+1;c>1;c--)print r;print;c=a}b{r=$0}' b=2 a=4 s="string" file1
...where "b" and "a" are the number of lines to print... (2 Replies)
Discussion started by: ctap
2 Replies
3. Shell Programming and Scripting
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
4. Shell Programming and Scripting
What am I doing wrong here? I get syntax error.
I am trying to parse a file looking for the lines with "running" as the first field then print the 5th field, then looking at the 9th field for specific values and writing the whole line to a junk file.
nawk ';
{if ($1 == "running")... (10 Replies)
Discussion started by: beppler
10 Replies
5. Shell Programming and Scripting
hi people;
this is my two awk code:
nawk '/cell+-/{r=(NF==8) ? $4FS$5FS$6 : NF==7 ? $4FS$5 : $4 ;c=split(r,rr);for (i=1;i<=c;i++){if(rr != "111111"){printf($3" %d ""\n",(i+3))}}printf("")}' /home/gc_sw/str.txt > /home/gc_sw/predwn.txt
nawk -F'*' '{gsub(/ *$/,"")}$0=$1$($NF-2)'... (2 Replies)
Discussion started by: gc_sw
2 Replies
6. UNIX for Dummies Questions & Answers
Hi,
Please help me I want to filter all messages having a value less than a particular value..Please advice how to use <= in the below red marked script..
Getting the error as no such file or directory for the marked line no.
Thanks in advance...
Script is as under :
read message
gawk... (5 Replies)
Discussion started by: vanand420
5 Replies
7. Shell Programming and Scripting
help out with code. two files aaa bbb contains some records..output file xyz should be like this..see below
i/p file:aaa
08350|60521|0000|505|0000|1555|000|NYCMT|Pd_1 |-11878
i/p file: bbb
60521|60510
o/p file :xyz
60510|08350|60521|0000|505|0000|1555|000|NYCMT|Pd_1 |-11878 (5 Replies)
Discussion started by: Diddy
5 Replies
8. Shell Programming and Scripting
hi guys,
I am writing a code and have stuck at one point. Inside nawk I am storing my desired variable a, I just need to find if a is present in an external file error.log or not. If yes, print something. grep or for loop not working properly inside nawk. Sample code provided.
nawk '
BEGIN... (5 Replies)
Discussion started by: shekhar2010us
5 Replies
9. Shell Programming and Scripting
I don't know whats wrong with the code here.
Its giving double counts.
nawk -F# '
{
if( match($2, "= ") > 0)
num=substr($2,RSTART+2,length($2)-1);
if (match($20, "= ") > 0)
res=substr($20,RSTART+2,length($20)-1);
if(match(num,... (2 Replies)
Discussion started by: jagpreetc
2 Replies
10. Shell Programming and Scripting
Hi.. i am running nawk scripts on solaris system to get records of file1 not in file2 and find duplicate records in a while with the following scripts -compare
nawk 'NR==FNR{a++;next;} !a {print"line"FNR $0}' file1 file2duplicate - nawk '{a++}END{for(i in a){if(a-1)print i,a}}' file1in the middle... (12 Replies)
Discussion started by: Abhiraj Singh
12 Replies
rmvb(9F) Kernel Functions for Drivers rmvb(9F)
NAME
rmvb - remove a message block from a message
SYNOPSIS
#include <sys/stream.h>
mblk_t *rmvb(mblk_t *mp, mblk_t *bp);
INTERFACE LEVEL
Architecture independent level 1 (DDI/DKI).
PARAMETERS
mp Message from which a block is to be removed. mblk_t is an instance of the
msgb(9S) structure.
bp Message block to be removed.
DESCRIPTION
rmvb() removes a message block (bp) from a message (mp), and returns a pointer to the altered message. The message block is not freed,
merely removed from the message. It is the module or driver's responsibility to free the message block.
RETURN VALUES
If successful, a pointer to the message (minus the removed block) is returned. The pointer is NULL if bp was the only block of the message
before
rmvb() was called. If the designated message block (bp) does not exist, -1 is returned.
CONTEXT
rmvb() can be called from user or interrupt context.
EXAMPLES
This routine removes all zero-length M_DATA message blocks from the given message. For each message block in the message, save the next
message block (line 10). If the current message block is of type M_DATA and has no data in its buffer (line 11), then remove it from the
message (line 12) and free it (line 13). In either case, continue with the next message block in the message (line 16).
1 void
2 xxclean(mp)
3 mblk_t *mp;
4 {
5 mblk_t *tmp;
6 mblk_t *nmp;
7
8 tmp = mp;
9 while (tmp) {
10 nmp = tmp->b_cont;
11 if ((tmp->b_datap->db_type == M_DATA) &&
(tmp->b_rptr == tmp->b_wptr)) {
12 (void) rmvb(mp, tmp);
13 freeb(tmp);
14 }
15 tmp = nmp;
16 }
17 }
SEE ALSO
freeb(9F), msgb(9S)
Writing Device Drivers
STREAMS Programming Guide
SunOS 5.10 11 Apr 1991 rmvb(9F)