08-24-2004
Max column count in a file
I have to send a file to mainframe and before sending it, I have to execute the quote command to set the record length.
Since the file is dynamic, I do not know what the maximum size of a line could be.
Currently, I use the following function to get the Max Column Count. Since I use "sed" it takes a long time for big files.
GetMaxCols()
{
MAX_COL_SIZE=0
for line in `cat $1 | sed "s! !~!g"`
do
COL_COUNT=`echo $line | wc -c`
if [ "$COL_COUNT" -gt "$MAX_COL_SIZE" ]; then
MAX_COL_SIZE=$COL_COUNT
fi
done
echo $MAX_COL_SIZE
}
Any better ways to achieve this goal ?
Thanks in advance.
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
hey everybody ..
I have a problem when I use this command to count the Max number by awk it give to me 99 while there are numbers bigger than 99
awk 'NR==0 { temp = $0 ;next}
{ if ( $0 >= temp ) { temp=$0 } }
END{ print "Maximum Number:"temp""}' file
thank you for your help... (9 Replies)
Discussion started by: halola85
9 Replies
2. Shell Programming and Scripting
Hi All,
I have an Output from a log file which is something like as follows..
***** CDR and SDR Statistics****
Wed Feb 25 00:05:00 EST 2009
*********CDR and SDR QUEUE STATUS*****
Queue busy wait msgs
cdr 2 2 4
sdr ... (3 Replies)
Discussion started by: nirmal84
3 Replies
3. Shell Programming and Scripting
Hi Everyone,
1.txt
00:00:00 0 0 0 0 0 0 0
00:00:01 0 0 0 2 1 33 2
00:00:02 5 0 0 0 0 0 0
00:00:03 0 4 0 0 0 0 0... (5 Replies)
Discussion started by: jimmy_y
5 Replies
4. Shell Programming and Scripting
Hello all,
this should really be easy for you... I need AWK to print column maxima for each column of such input:
Input:
1 2 3 1
2 1 1 3
2 1 1 2
Output should be:
2 2 3 3
This does the sum, but i need max instead:
{ for(i=1; i<=NF; i++)
sum +=$i }
END {for(i=1; i in sum;... (3 Replies)
Discussion started by: irrevocabile
3 Replies
5. Shell Programming and Scripting
I am redirecting my ping output to a file. The sample output is like this:
64 bytes from xx.xx.xx.167: icmp_seq=4490 ttl=116 3.75 ms 2011Jul12- 15 40 16
64 bytes from xx.xx.xx.167: icmp_seq=4491 ttl=116 5.29 ms 2011Jul12- 15 40 17
64 bytes from xx.xx.xx.167: icmp_seq=4492 ttl=116 4.88 ms... (6 Replies)
Discussion started by: zorrox
6 Replies
6. Shell Programming and Scripting
Hi ,
Below is my sample data,I have this 8 column(A,B,C,D,E,F,G,H) in csv file.
A , B ,C ,D ,E ,F,G ,H
4141,127337,24,15,20,69,72.0,-3
4141,128864,24,15,20,65,66.0,-1
4141,910053,24,15,4,4,5.0,-1
4141,910383,24,15,22,3,4.0,-1
4141,496969,24,15,14,6,-24.0,-18... (7 Replies)
Discussion started by: vinothsekark
7 Replies
7. Shell Programming and Scripting
Hi,
I need an awk script (or whatever shell-construct) that would take data like below and get the max value of 3 column, when grouping by the 1st column.
clientname,day-of-month,max-users
-----------------------------------
client1,20120610,5
client2,20120610,2
client3,20120610,7... (3 Replies)
Discussion started by: ckmehta
3 Replies
8. Shell Programming and Scripting
I have a text file that has the following column data:
0.007
0.005
0.004
0.007
How do i output the total sum of the data above? (6 Replies)
Discussion started by: alegnagrp
6 Replies
9. Shell Programming and Scripting
Hi All,
let's say an input looks like:
C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11
----------------------------------
1|0123452|C501|Z|Z|Z|E|E|E|E|E|E|E
1|0156123|C501|X|X|X|E|E|E|E|E|E|E
1|0178903|C501|Z|Z|Z|E|E|E|E|E|E|E
1|0127896|C501|Z|Z|Z|E|E|E|E|E|E|E
1|0981678|C501|X|X|X|E|E|E|E|E|E|E
... (6 Replies)
Discussion started by: suresh_target
6 Replies
10. UNIX for Beginners Questions & Answers
sorry i will revise first (1 Reply)
Discussion started by: fajar_3t3
1 Replies
fold(1) General Commands Manual fold(1)
NAME
fold - fold long lines for finite width output device
SYNOPSIS
width] [file ...]
Obsolete form:
width] [file ...]
DESCRIPTION
The command is a filter that folds the contents of the specified files, breaking the lines to have a maximum of width column positions (or
bytes, if the option is specified). The command breaks lines by inserting a newline character so that each output line is the maximum
width possible that does not exceed the specified number of column positions (or bytes). A line cannot be broken in the middle of a char-
acter. If no files are specified or if a file name of is specified, the standard input is used.
The command is often used to send text files to line printers that truncate, rather than fold, lines wider than the printer is able to
print.
If the backspace, tab, or carriage-return characters are encountered in the input, and the option is not specified, they are treated spe-
cially as follows:
Backspace The current count of line width is decremented by one, although the count never becomes negative. Thus, the char-
acter sequence character-backspace-character counts as using one column position, assuming both characters each
occupy a single column position. does not insert a newline character immediately before or after any backspace
character.
Tab Each tab character encountered advances the column position pointer to the next tab stop. Tab stops are set 8 col-
umns apart at column positions 1, 9, 17, 25, 33, etc.
Carriage-return The current count of line width is set to zero. does not insert a newline character immediately before or after
any carriage-return character.
Note that may affect any underlining that is present.
Options
The command recognizes the following options and command-line arguments:
Count width in bytes rather than in column positions.
Break the line on the last blank character found
before the specified number of column positions (or bytes). If none are found, break the line at the specified
line length.
Specify the maximum line length, in column positions (or bytes if
is specified). The default value is 80. width should be a multiple of 8 if tabs are present, or the tabs should
be expanded using before processing by (see expand(1)). The option is obsolescent and may be removed in a future
release.
EXTERNAL INFLUENCES
Environment Variables
determines the interpretation of text as single- and/or multi-byte characters.
determines the language in which messages are displayed.
If or is not specified in the environment or is set to the empty string, the value of is used as a default for each unspecified or empty
variable. If is not specified or is set to the empty string, a default of "C" (see lang(5)) is used instead of
If any internationalization variable contains an invalid setting, behaves as if all internationalization variables are set to "C". See
environ(5).
International Code Set Support
Single- and multi-byte character code sets are supported.
SEE ALSO
expand(1).
STANDARDS CONFORMANCE
fold(1)