09-16-2001
A "poor man's" method could be to use
two file descriptors (1 read fd and 1 write fd)
on the file and then use
getc() and examine the value of the character
returned (and subsequent character values) to
match the string in question. Once you've found
it, you can then "seek()" to the start of the
pattern and write the new pattern assuming you
are writing the same number of bytes to replace
the old pattern. If not, then you will have to
write to a new file (maybe a tmp file) and be
sure to write out all non matching data to the
new file. You can then replace the old file
with the new one ( see: unlink(), link() ).
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
Hi ,
i would convert the following file
V M BOURSE EMPLOI mail/mail-03/dfr-dc.nsf
V M DelSpam mail/mail-04/celine_bet.nsf
like that :
mail/mail-03/dfr-dc.nsf;BOURSE EMPLOI
mail/mail-20/celine_bet.nsf;DelSpam
the second field ( ex:... (2 Replies)
Discussion started by: Nicol
2 Replies
2. Shell Programming and Scripting
I need help manipulating text in a file. I am wanting to know a way to shell (ksh)script-edit a file by having a script that searches for a specific string, and then input lines of text in the file before that specific string, without deleting any of the other text in the file.
I got this... (2 Replies)
Discussion started by: LinuxRacr
2 Replies
3. Shell Programming and Scripting
Hi,
I have a file with 3 lines like
aaaabb
abcdef
wertyu
now i want to insert a new character "Q" in the 3rd position of every line of the file....
I found a way to do it but i felt it is little complex. Do you guys have any ideas (4 Replies)
Discussion started by: siddu_chittari
4 Replies
4. Shell Programming and Scripting
Hi,
i have a file with fixed record length with the following content (only one sentence)
12345678901234567890123456789012345678901234567890
12345678 87654321 hugo meyer friedhofpaul
the numbers above are only the column-positions and not part of the file!
Now i want... (2 Replies)
Discussion started by: FranzB
2 Replies
5. UNIX for Dummies Questions & Answers
Hi there,
I've trawled all over the web for help, and although seen some examples of what i want to do, I cannot seem to get it to work. I need to have this as a script.
If anyone can help, I would like to do the following: I have 2 files, File A and File B. I would like to keep file A but... (5 Replies)
Discussion started by: lazerlyte
5 Replies
6. Shell Programming and Scripting
Legends,
Please help me to get the following
I have a file abc.txt with the following contents
12
13
14
15
And, i want to get the output to a variable like below
12,13,14,15 ....
How do i do this?
Regards,
san
Please use code tags when posting data and code samples! (5 Replies)
Discussion started by: sdosanjh
5 Replies
7. Shell Programming and Scripting
Hi Forum.
I have the following 2 files: edw_mf_bypass_msg.txt and EDW_server.cfg.
edw_mf_bypass_msg.txt - File#1 contains the following text
To EDW Support:
This is an automatic email sent from var_hostname.
Please note that the Mutual Fund load did not run today due to previous... (2 Replies)
Discussion started by: pchang
2 Replies
8. UNIX for Dummies Questions & Answers
Hi,
I am looking for an awk script which should help me to meet the following requirement:
File1 has records in following format
INF: FAILEd RECORD AB1234
INF: FAILEd RECORD PQ1145
INF: FAILEd RECORD AB3215
INF: FAILEd RECORD AB6114
............................ (2 Replies)
Discussion started by: mintu41
2 Replies
9. Shell Programming and Scripting
Hi ,
I have a simple text file with contents as below:
12345678900 971,76 4234560890
22345678900 5971,72 5234560990
32345678900 71,12 6234560190
the new csv-file should be like:
Column1;Column2;Column3;Column4;Column5
123456;78900;971,76;423456;0890... (9 Replies)
Discussion started by: FreddyDaKing
9 Replies
10. Shell Programming and Scripting
Hi,
I am confused how to proceed firther please find the problem below:
Input Files:
DCIA_GEOG_DATA_OCEAN.TXT
DCIA_GEOG_DATA_MCRO.TXT
DCIA_GEOG_DATA_CVAS.TXT
DCIA_GEOG_DATA_MCR.TXT
Output File Name: MMA_RFC_GEOG_NAM_DIM_LOD.txt
Sample Record(DCIA_GEOG_DATA_OCEAN.TXT):(Layout same for... (4 Replies)
Discussion started by: Arun Mishra
4 Replies
seek(n) Tcl Built-In Commands seek(n)
__________________________________________________________________________________________________________________________________________________
NAME
seek - Change the access position for an open channel
SYNOPSIS
seek channelId offset ?origin?
_________________________________________________________________
DESCRIPTION
Changes the current access position for channelId.
ChannelId must be an identifier for an open channel such as a Tcl standard channel (stdin, stdout, or stderr), the return value from an
invocation of open or socket, or the result of a channel creation command provided by a Tcl extension.
The offset and origin arguments specify the position at which the next read or write will occur for channelId. Offset must be an integer
(which may be negative) and origin must be one of the following:
start The new access position will be offset bytes from the start of the underlying file or device.
current The new access position will be offset bytes from the current access position; a negative offset moves the access position back-
wards in the underlying file or device.
end The new access position will be offset bytes from the end of the file or device. A negative offset places the access position
before the end of file, and a positive offset places the access position after the end of file.
The origin argument defaults to start.
The command flushes all buffered output for the channel before the command returns, even if the channel is in nonblocking mode. It also
discards any buffered and unread input. This command returns an empty string. An error occurs if this command is applied to channels
whose underlying file or device does not support seeking.
Note that offset values are byte offsets, not character offsets. Both seek and tell operate in terms of bytes, not characters, unlike
read.
EXAMPLES
Read a file twice:
set f [open file.txt]
set data1 [read $f]
seek $f 0
set data2 [read $f]
close $f
# $data1 == $data2 if the file wasn't updated
Read the last 10 bytes from a file:
set f [open file.data]
# This is guaranteed to work with binary data but
# may fail with other encodings...
fconfigure $f -translation binary
seek $f -10 end
set data [read $f 10]
close $f
SEE ALSO
file(n), open(n), close(n), gets(n), tell(n), Tcl_StandardChannels(3)
KEYWORDS
access position, file, seek
Tcl 8.1 seek(n)