When the lines are a fixed record length, you can call seek() or fseek() in C++, C to get to a known line position.
this is c:
This places the file pointer at the beginning of lineno, assuming recl is fixed.
Otherwise you can try to optimize I/O (see Steven's Advanced Programming in the UBIX Environment) by increasing
buffersize
you have to call setvbuf BEFORE any I/O on the stream
Last edited by jim mcnamara; 05-30-2010 at 12:16 PM..
Hello,
I am new to shell scripting, and I am trying to create a script that reads an input like the following
firstname:lastname:age
firstname:lastname:age
firstname:lastname:age
in a text file. I have a 2 part question. First how do I open the file in a shell script. And then how can... (7 Replies)
hi to all
im having some 20,000 files in that im having some contents say the tabulation of biophysics lab readings ... and i want read tat file and look into tat wether a number say -18.90 is there r not .. and if there print tat no wit file name beside
thank you:D (1 Reply)
So, I want to read line-by-line a text file with unknown number of files....
So:
a=1
b=1
while ; do
b=`sed -n '$ap' test`
a=`expr $a + 1`
$here do something with b etc
done
the problem is that sed does not seem to recognise the $a, even when trying
sed -n ' $a p'
So, I cannot read... (3 Replies)
I need to write a C-Shell script with these properties: It should accept two arguments on the command line. The first argument is the name of a file which contains a list of names, and the second argument is the name of a directory. For each file in the directory, the script should print the... (1 Reply)
I need some help. I would like to read in a text file.
Take a variable such as ROW-D-01, compare it to what's in one line in the text file such as PROD/VM/ROW-D-01 and only input PROD/VM into a variable without the /ROW-D-01.
Is this possible? any help is appreciated. (2 Replies)
I want to add/append the info in the following format to my.txt file.
20130702|abcd20130702.txt FN|SN|DOB
I tried the below script but it throws me some exceptions.
<#!/bin/sh
dt = date '+%y%m%d'members;
echo $dt+|+members+$dt;
/usr/bin/awk -f
BEGIN { FS="|"; OFS="|"; } { print... (6 Replies)
Dear all,
I have a huge txt file (DATA.txt) with the following content . From this txt file, I want the following output using some shell script.
Any help is greatly appreciated.
Greetings,
emily
DATA.txt (snippet of the huge text file)
407202849... (2 Replies)
Hi All
Is there a way to export every line into new txt file where by the title of each txt output are same as the line ?
I have this txt files containing names:
Kandra Vanhooser
Rhona Menefee
Reynaldo Hutt
Houston Rafferty
Charmaine Lord
Albertine Poucher
Juana Maes
Mitch Lobel... (2 Replies)
SETBUF(3) BSD Library Functions Manual SETBUF(3)NAME
setbuf, setbuffer, setlinebuf, setvbuf -- stream buffering operations
LIBRARY
Standard C Library (libc, -lc)
SYNOPSIS
#include <stdio.h>
void
setbuf(FILE * restrict stream, char * restrict buf);
void
setbuffer(FILE *stream, char *buf, size_t size);
int
setlinebuf(FILE *stream);
int
setvbuf(FILE * restrict stream, char * restrict buf, int mode, size_t size);
DESCRIPTION
The three types of buffering available are unbuffered, block buffered, and line buffered. When an output stream is unbuffered, information
appears on the destination file or terminal as soon as written; when it is block buffered many characters are saved up and written as a
block; when it is line buffered characters are saved up until a newline is output or input is read from any stream attached to a terminal
device (typically stdin). The function fflush(3) may be used to force the block out early. (See fclose(3).)
Normally all files are block buffered. When the first I/O operation occurs on a file, malloc(3) is called, and an optimally-sized buffer is
obtained. If a stream refers to a terminal (as stdout normally does) it is line buffered. The standard error stream stderr is initially
unbuffered.
The setvbuf() function may be used to alter the buffering behavior of a stream. The mode parameter must be one of the following three
macros:
_IONBF unbuffered
_IOLBF line buffered
_IOFBF fully buffered
The size parameter may be given as zero to obtain deferred optimal-size buffer allocation as usual. If it is not zero, then except for
unbuffered files, the buf argument should point to a buffer at least size bytes long; this buffer will be used instead of the current buffer.
(If the size argument is not zero but buf is NULL, a buffer of the given size will be allocated immediately, and released on close. This is
an extension to ANSI C; portable code should use a size of 0 with any NULL buffer.)
The setvbuf() function may be used at any time, but may have peculiar side effects (such as discarding input or flushing output) if the
stream is ``active''. Portable applications should call it only once on any given stream, and before any I/O is performed.
The other three calls are, in effect, simply aliases for calls to setvbuf(). Except for the lack of a return value, the setbuf() function is
exactly equivalent to the call
setvbuf(stream, buf, buf ? _IOFBF : _IONBF, BUFSIZ);
The setbuffer() function is the same, except that the size of the buffer is up to the caller, rather than being determined by the default
BUFSIZ. The setlinebuf() function is exactly equivalent to the call:
setvbuf(stream, (char *)NULL, _IOLBF, 0);
RETURN VALUES
The setvbuf() function returns 0 on success, or EOF if the request cannot be honored (note that the stream is still functional in this case).
The setlinebuf() function returns what the equivalent setvbuf() would have returned.
SEE ALSO fclose(3), fopen(3), fread(3), malloc(3), printf(3), puts(3)STANDARDS
The setbuf() and setvbuf() functions conform to ANSI X3.159-1989 (``ANSI C89'').
BUGS
The setbuffer() and setlinebuf() functions are not portable to versions of BSD before 4.2BSD. On 4.2BSD and 4.3BSD systems, setbuf() always
uses a suboptimal buffer size and should be avoided.
BSD June 4, 1993 BSD