Sponsored Content
Top Forums Shell Programming and Scripting Increase the buffer size to read lengthy lines Post 302175985 by era on Monday 17th of March 2008 04:03:41 AM
Old 03-17-2008
Your problem is not "buffer size". If you are using a command which reads one line at a time, it will read even long lines, but if the input is more than one line, it will only read the first line.

Let's rephrase this problem. How do you know when something is more than one line? Because the next line is then not a date stamp. So you can create a simple parser for this format, which recognizes everything up to the next date stamp as one input record.

This is probably best done with a scripting language such as awk or Perl or Python, but just for the sake of argument, here's a quick and dirty solution in shell script:

Code:
#!/bin/sh

date=
input=
nl="
"  # yes, that's opening quote, newline, closing quote
while read line; do
  case $line in
    *day\ [0-9][0-9]\ *\ [12][0-9][0-9][0-9]\ *)
      # warning! y3k problem
      # warning! fragile matching, would be better with regex
      # warning! basically untested code anyway
      case $date in '') ;;
        *) echo "Result for '$date'":
	    echo "$input" ;;
      esac
      input=
      date=$line
      ;;
    *)
      input="$input${input:+$nl}$line"
      ;;
  esac
done

# whatever is left at end of file is a result too
echo "Result for '$date'":
echo "$input"

era
 

10 More Discussions You Might Find Interesting

1. Programming

Using fread if the buffer size is not known

Hi... I am trying to read a binary data that have different types of messages of different lengths. I am using fread() but this functions needs the size and count to read the buffer from the file. I think this may cause that the buffer overlaps other messages. Is there an alternative to read... (1 Reply)
Discussion started by: jlrodz
1 Replies

2. Red Hat

buffer cache size

hi everyone, can any one help change the buffer cache size in redhat and suse?? this error i got when i installed oracle 10g and it went well and when i try to mount the database using startup cmd it says too many buffer cache parameters (error code : ora-1034) thnq in advance (0 Replies)
Discussion started by: gsr_kashyap
0 Replies

3. UNIX for Advanced & Expert Users

How to increase the buffer size in Unix

When I checked with top command, I found tht my buffers are always 137M, which means that they are sort of overloaded. My Inactive memory is 520M. Is it possible to increaase the buffer size and what would be the command for that? (0 Replies)
Discussion started by: ziabegg
0 Replies

4. UNIX for Dummies Questions & Answers

How to increase buffer size in Unix

The "top" command shows that my buffer size is always at 137M, which I think has reached to the maximum. However, Ido have lots of Inative memory? Is it possible to increae the buffer size? and what is the command for that? Further, this is the buffer for writing to the hard disk? (3 Replies)
Discussion started by: ziabegg
3 Replies

5. UNIX for Dummies Questions & Answers

how to increase size of the console screen buffer ?

Its difficult to explain what I am exactly looking for, so let me try with an example.. Suppose my program prints out thousands lines. But once my program ends.. I am not able to scroll up and see all the 1000 lines. The size of the screen buffer is obviously limited. Is there anyway I can... (5 Replies)
Discussion started by: the_learner
5 Replies

6. Shell Programming and Scripting

Expect buffer size increase, please help

Hi Group, I am struggling to increase buffer size of expect, sometimes after increasing the buffer size, expect captures all my expected output, sometimes not, :-( I tried match_max 700000 set expect_out(buffer) {} Could anybody guide me for any solution. HTH,... (1 Reply)
Discussion started by: jaduks
1 Replies

7. Programming

Cannot read a file with read(fd, buffer, buffersize) function

# include <stdio.h> # include <fcntl.h> # include <stdlib.h> # include <sys/stat.h> int main(int argc, char *argv) { int fRead, fPadded, padVal; int btRead; int BUFFSIZE = 512; char buff; if (argc != 4) { printf ("Please provide all of the... (3 Replies)
Discussion started by: naranja18she
3 Replies

8. Programming

Maximum buffer size for read()

Hi friends, Hope everybody is fine. First have a look at my code, then we will talk about it. $ cat copy.c #include <stdio.h> #define PERMS 0644 /* RW for owner, R for group, others */ #define BUFSIZE 1 char *progname; int main(int argc,char * argv) { int f1, f2, n; ... (4 Replies)
Discussion started by: gabam
4 Replies

9. Programming

[c] How to calculate size of the file from size of the buffer?

Hi, Can I find size of the file from size of the buffer written? nbECRITS = fwrite(strstr(data->buffer, ";") + 1, sizeof(char), (data->buffsize) - LEN_NOM_FIC, fic_sortie); Thank You :) (1 Reply)
Discussion started by: ezee
1 Replies

10. UNIX for Dummies Questions & Answers

How to increase buffer size (xterm)?

Hello, I would like to increase the size of my buffer in my xterm window. My shell is bash and my home directory is auto mounted. I'm on Solaris 10, RHEL 5 and SLES 11 servers. Do you know where I can do this? (4 Replies)
Discussion started by: bitlord
4 Replies
acctcon(1M)															       acctcon(1M)

NAME
acctcon, acctcon1, acctcon2 - connect-time accounting SYNOPSIS
[options] [options] DESCRIPTION
The command converts a sequence of login/logoff records read from its standard input to a sequence of records, one per login session. Its input should normally be redirected from or Its output is ASCII, giving device, user ID, login name, prime connect time (seconds), non- prime connect time (seconds), session starting time (numeric), and starting date and time. Prime connect time is defined as the connect time within a specific prime period on a non-holiday weekday (Monday through Friday). The starting and ending time of the prime period and the year's holidays are defined in file expects as input a sequence of login session records, produced by and converts them into total accounting records (see format in acct(4)). combines the functionality of and into one program. It takes the same input format as and writes the same output as recognizes the following options: Print input only, showing line name, login name, and time (in both numeric and date/time formats). maintains a list of lines on which users are logged in. When it reaches the end of its input, it emits a session record for each line that still appears to be active. It normally assumes that its input is a current file, so that it uses the current time as the ending time for each ses- sion still in progress. The flag causes it to use, instead, the last time found in its input, thus ensuring reason- able and repeatable numbers for non-current files. and recognize the following options: file is created to contain a summary of line usage showing line name, number of minutes used, percentage of total elapsed time used, number of sessions charged, number of logins, and number of logoffs. This file helps track line usage, identify bad lines, and find software and hardware oddities. Hang-up, termination of (see login(1)), and termination of the login shell each generate logoff records, so that the number of logoffs is often three to four times the num- ber of sessions. See init(1M) and utmp(4). file is filled with an overall record for the accounting period, giving starting time, ending time, number of reboots, and number of date changes. When this option is used, the records of the type found in are read from the specified input. EXAMPLES
These commands are typically used as shown below. The file is created only for the use of commands described by the acctprc(1M) manual entry: or With option: or Note: The file can be either or a file containing records of the type found in WARNINGS
The line usage report is confused by date changes. Use (see fwtmp(1M)) to correct this situation. FILES
SEE ALSO
login(1), acct(1M), acctcms(1M), acctcom(1M), acctmerg(1M), acctprc(1M), acctsh(1M), fwtmp(1M), init(1M), utmpd(1M), runacct(1M), acct(2), getbwent(3C), acct(4), utmp(4). STANDARDS CONFORMANCE
acctcon(1M)
All times are GMT -4. The time now is 03:28 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy