Worked like a charm - thanks!! Could you briefly explain what the stuff following the prinf means? With printf, it seems you're printing column 1 and 2 side by side of 8 characters per column. Then it seems you're repeating this 4 times to get the next 3 sets of data. But how does it create a new line once 4 sets of data have been printed across?
Here is the code spread out a bit more for readability, with line numbers proceeding so I can reference.
In this case the whole piece of code is run for each line of input.
Line1:
This prints out columns 1 and 2 ($1 and $2) of the input line ... the '%8s' means they get printed out in 8 character columns left padded with spaces.
Line 2:
Once the line has been read and the first 2 columns have been printed we increment a counter by one.
Line 3:
This test to see if our counter variable (the one we just incremented) is a multiple of 4 or not. the '%' operator returns the remainder after dividing the 1st argument (a) by the second (4).
Line 4:
So if the remainder of "a/4" is zero (ie. it is divisible by 4) then we print a new line. The reason this works is that the 'print' command always prints a new line character as opposed to the printf command which doesn't. This has the effect of printing a new line every 4 lines of input.
I normally do stuff in perl not awk ... so I always forget about awk's built in variables :-(
And yes ... awk is not C ... the final command termination is implicit. It doesn't harm to put it in though :-) You also avoid questions like: You terminated all your commands with ';' except the last one ... why?
I replied with an awk script since that was what the original poster has tried.
Dear Unixers,
I'm having some difficulty in converting an n x m data matrix into a dataset of 3 columns and nxm rows. As an example I want to convert this dataset
2 3 4 5
2 0.0 0.0 0.1 0.1
6 -0.3 2.0 0.0 0.3
7 -0.6 -1.1 0.5 0.3
9 -0.9 -4.1 -0.7 0.5
... (2 Replies)
Hi
I have a ksh script which gives me the output as a single column with several rows like:
AAA
BBB
CCC
DDD
EEE
FFF
GGG
HHH
III
I want to be able to create a new file from this file which allows me to set the number of rows and columns in the new file, i.e. for this example, if I... (30 Replies)
I have this data
M36 AREA INFORMATION
MDN = 0485009346
ESN = H'15fda0b0
TYPE = HLR
RESULT = NOK
REASON = UNRECOGNIZED MIN
COMPLETED
AREA INFORMATION
MDN = 0498044402
ESN = H'15fdac11
TYPE... (2 Replies)
Hi Friends
I have the following input data in 2 columns.
SNo 1
I1 Value
I2 Value
I3 Value
SNo 2
I4 Value
I5 Value
I6 Value
I7 Value
SNo 3
I8 Value
I9 Value
...............
................
SNo N (1 Reply)
I have a program which gives me the output as a single column with hundreds of rows like:
213
314
324
324
123
I want to be able to create a new file from this file which allows me to set the number of rows and columns in the new file, i.e. for this example, if I specify 3 rows and 2... (5 Replies)