09-14-2006
sed question (again)
hello there, I have a sed question.
I have a file (temp.srv), in it it has
v1_host1
v2_host2
And I have another file (temp2.srv), in it is has
v1_host3_date
v1_host1
v2_host2
v2_host4_date
v3_host5_date
I had used a script to remove the name from temp2.srv base on the name inside temp.srv and the section of codes that will remove the name are as follow:
--------------------------------------------------------------------------
cat temp.srv | while read line
do
if [[ -n $line ]]; then
cat $temp2.srv | sed "s/$line//" | sort -n > newfile.src
fi
done
cat newfile.src
--------------------------------------------------------------------------
When I ran my script, only one of the name was remove
Output
--------------------------------------------------------------------------
v1_host3_date
v1_host1
v2_host4_date
v3_host5_date
--------------------------------------------------------------------------
Is that section of codes has some logical error? Any hint for me?
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
Hi,
Is there any way to traverse the file once and look for the following conditions in one sweep instead of going over the file 3 times with different search criteria......
sed -n '/^ORA-07445/ p' /tmp/t$$ > ${OERRFILE}
sed -n '/^ORA-00600/ p' /tmp/t$$ >> ${OERRFILE}
... (1 Reply)
Discussion started by: YS2002
1 Replies
2. Shell Programming and Scripting
Hi,
When deleting lines using sed, as i understand the lines are redirected to the standard output. What i'm unclear about is how to actually modify the file?
If I write the command sed '1,2d' test it will display lines one and 2 onto the screen however the file is not modified? I think my... (5 Replies)
Discussion started by: c19h28O2
5 Replies
3. Shell Programming and Scripting
Hi, :)
can any body explain the following statement
sed 's/\(\)- ]//g'
cheers
RRK (3 Replies)
Discussion started by: ravi raj kumar
3 Replies
4. Shell Programming and Scripting
I have a file that conatins following info
Policy1=U|guestRoom=test1idCode=5(1):!:Amenity2=U|RoomId=testrma=4(1):!:|
GuestRoomAmenity1=U|guestRoomId=testguest1id^rmaCode=5(1):!:|
I need it to look like this
Policy1=U|guestRoom=test1idCode
Amenity2=U|RoomId=testrmaCode... (2 Replies)
Discussion started by: arushunter
2 Replies
5. UNIX for Dummies Questions & Answers
How would I use sed to print everything on the line after the regular expresion?
I have a configuration file setting several variables.
cfg.dat
DDB = cpptest
SUDBNAME = sucpptestdb
host = cpptest
Example
I want to search for the regular expresion 'SUDBNAME =' and print everything on... (3 Replies)
Discussion started by: orahi001
3 Replies
6. Shell Programming and Scripting
Write a sed script to extract the year, rank, and stock for the most recent 10 years available in the file top10_mktval.csv, and output in the following format:
------------------------------
YEAR |RANK| STOCK
------------------------------
2007 | 1 | Exxon... (1 Reply)
Discussion started by: beibeiatNY
1 Replies
7. Shell Programming and Scripting
hi
i have a file with this line:
variable=/export/home/oracle
I want to change the file so that the path is replaced with the value of another variable
var2=/tmp/anything.
how to do this in sed?
thx (4 Replies)
Discussion started by: melanie_pfefer
4 Replies
8. Shell Programming and Scripting
I need to replace the numbers with a new string.
How can I give a wildcard for the different # of numbers
sed '/abcdef/s/abcdef=*/abcdef=999999/'<foo>foo1
From: To:
abcdef=1234 abcdef=999999
abcdef=12345 abcdef=999999
abcdef=123456... (10 Replies)
Discussion started by: beppler
10 Replies
9. UNIX for Dummies Questions & Answers
I am trying to write a script that will take an input text file in the format
person: place: phonenumber;
person: place: phonenumber;
person: place: phonenumber;
...
and output it using sed too:
Name ######## Location ######### Phone Number... (1 Reply)
Discussion started by: jmack56
1 Replies
10. Shell Programming and Scripting
I have the following string:
"File Reader"
I also have a list of directories:
"File Reader (#53)"
"CSV Writer (#47)"
"Scorer (#22)"
I want to search the name of each directory until I find "File Reader". Then, I want the corresponding number to be returned.
For example, if I am... (7 Replies)
Discussion started by: xan.amini
7 Replies
srv(9E) Driver Entry Points srv(9E)
NAME
srv - service queued messages
SYNOPSIS
#include <sys/types.h>
#include <sys/stream.h>
#include <sys/stropts.h>
#include <sys/ddi.h>
#include <sys/sunddi.h>
intprefixrsrv(queue_t *q);
/* read side */
intprefixwsrv(queue_t *q);
/* write side */
INTERFACE LEVEL
Architecture independent level 1 (DDI/DKI). This entry point is required for STREAMS.
ARGUMENTS
q Pointer to the queue(9S) structure.
DESCRIPTION
The optional service srv() routine may be included in a STREAMS module or driver for many possible reasons, including:
o to provide greater control over the flow of messages in a stream;
o to make it possible to defer the processing of some messages to avoid depleting system resources;
o to combine small messages into larger ones, or break large messages into smaller ones;
o to recover from resource allocation failure. A module's or driver's put(9E) routine can test for the availability of a resource, and
if it is not available, enqueue the message for later processing by the srv() routine.
A message is first passed to a module's or driver's put(9E) routine, which may or may not do some processing. It must then either:
o Pass the message to the next stream component with putnext(9F).
o If a srv() routine has been included, it may call putq(9F) to place the message on the queue.
Once a message has been enqueued, the STREAMS scheduler controls the service routine's invocation. The scheduler calls the service routines
in FIFO order. The scheduler cannot guarantee a maximum delay srv() routine to be called except that it will happen before any user level
process are run.
Every stream component (stream head, module or driver) has limit values it uses to implement flow control. Each component should check the
tunable high and low water marks to stop and restart the flow of message processing. Flow control limits apply only between two adjacent
components with srv() routines.
STREAMS messages can be defined to have up to 256 different priorities to support requirements for multiple bands of data flow. At a mini-
mum, a stream must distinguish between normal (priority zero) messages and high priority messages (such as M_IOCACK). High priority mes-
sages are always placed at the head of the srv() routine's queue, after any other enqueued high priority messages. Next are messages from
all included priority bands, which are enqueued in decreasing order of priority. Each priority band has its own flow control limits. If a
flow controlled band is stopped, all lower priority bands are also stopped.
Once the STREAMS scheduler calls a srv() routine, it must process all messages on its queue. The following steps are general guidelines for
processing messages. Keep in mind that many of the details of how a srv() routine should be written depend of the implementation, the
direction of flow (upstream or downstream), and whether it is for a module or a driver.
1. Use getq(9F) to get the next enqueued message.
2. If the message is high priority, process (if appropriate) and pass to the next stream component with putnext(9F).
3. If it is not a high priority message (and therefore subject to flow control), attempt to send it to the next stream component with a
srv() routine. Use bcanputnext(9F) to determine if this can be done.
4. If the message cannot be passed, put it back on the queue with putbq(9F). If it can be passed, process (if appropriate) and pass with
putnext().
RETURN VALUES
Ignored.
SEE ALSO
put(9E), bcanput(9F), bcanputnext(9F), canput(9F), canputnext(9F), getq(9F), nulldev(9F), putbq(9F), putnext(9F), putq(9F), qinit(9S),
queue(9S)
Writing Device Drivers
STREAMS Programming Guide
WARNINGS
Each stream module must specify a read and a write service srv() routine. If a service routine is not needed (because the put() routine
processes all messages), a NULL pointer should be placed in module's qinit(9S) structure. Do not use nulldev(9F) instead of the NULL
pointer. Use ofnulldev(9F) for a srv() routine can result in flow control errors.
SunOS 5.10 12 Nov 1992 srv(9E)