07-28-2008
Arrays in awk
Hi, I've written the following code to manipulate the first 40 lines of a data file into my desired order:
#!/bin/awk -f
{ if (NR<=(4)){
a[NR]=a[NR]$0" "}
else { if ((NR >= (5)) && (NR <= (13))) {
b[NR%3]=b[NR%3]$0" " }
else {if ((NR >= (14)) && (NR <= (25))){
c[NR%3]=c[NR%3]$0" "}
else{if ((NR>=(26)) && (NR<=(40))){
d[NR%3]=d[NR%3]$0" "}
}}}}
END {{for (i in a)
{print a[i]} }
{for (i in b)
{ print b[i]} }
{for (i in c)
{print c[i]} }
{for (i in d)
{print d[i]} }}
However, I want to apply this sorting to every set of 40 lines in the data file, where the data files are 10000+ lines. I tried enclosing the entire code in a for loop but this didn't work as the a, b, c and d arrays in each block of 40 lines would have to change as well.
Can arrays be given numerical names so they could be incremented with each execution of the for loop?
Many thanks
10 More Discussions You Might Find Interesting
1. UNIX for Advanced & Expert Users
Hi All,
I have been working on awk and arrays. I have this small script:
cat maillog*|awk -F: '$2=="SMTP-Accept" && $5~/string/ {lastdate=substr($1,1,8); internaluser=$5; v++} END {for (j in v) {print lastdate, v, j}'| sort>> mail.list
This gives me the number of mails users are getting. ... (1 Reply)
Discussion started by: nitin
1 Replies
2. Shell Programming and Scripting
Been struggling with a problem, I have been trying to do this in awk, but am unable to figure this out, I think arrays have to be used, but unsure how to accomplish this.
I have a input file that looks like this:
141;ny;y;g
789;ct;e;e
23;ny;n;u
45;nj;e;u
216;ny;y;u
7;ny;e;e
1456;ny;e;g... (3 Replies)
Discussion started by: craigsky
3 Replies
3. Shell Programming and Scripting
Guys,
OK so i have been trying figure this all all day, i guess its a pretty easy way to do it.
Right, so i have to column of data which i have gotten from one huge piece of data. What i would like to do is to put both of these into one array using awk. Is this possible??
If so could... (1 Reply)
Discussion started by: imonthejazz
1 Replies
4. Shell Programming and Scripting
now its owkring - thanks fo rthe help all . (7 Replies)
Discussion started by: fusionX
7 Replies
5. Shell Programming and Scripting
Hi,
I have spent the afternoon trawling Google, Unix.com and Unix in a Nutshell for information on how awk arrays work, and I'm not really getting too far.
I ahve a batch of code that I am pretty sure can be better managed using awk, but I'm not sure how to use awk arrays to do what I'm... (1 Reply)
Discussion started by: littleIdiot
1 Replies
6. Shell Programming and Scripting
Hi,
I have the following data in a file for example:
Name="Fred","Bob","Peterson","Susan","Weseley"
Age="24","30","28","23","45"
Study="English","Engineering","Physics","Maths","Psychology"
Code="0","0","1","1","0"
Name="Fred2","Bob2","Peterson2","Susan2","Weseley2"... (14 Replies)
Discussion started by: james2009
14 Replies
7. UNIX for Dummies Questions & Answers
Hi
Can someone please explain the logic of awk arrays. I have been doing some reading but I dont understand this:
#!/usr/bin/gawk -f
{
arr++;
}
end
{
for(i in arr)
{
print arr,i
}
}
As I understand arr refs the arrays index, so while $2 is a string that cant... (2 Replies)
Discussion started by: chronics
2 Replies
8. Shell Programming and Scripting
Hi, buddies
I am new to shell scripting and trying to solve a problem. I read about arrays in awk that they are quite powerful and are associative in nature.
Awk Gurus Please help!
I have a file:
Id1 pp1 0t4 pp8 xy2
Id43 009y black
Id6 red xy2
Id12 new pp1 black
I have... (5 Replies)
Discussion started by: geli21
5 Replies
9. Shell Programming and Scripting
I'm a little stuck and would be grateful of some advice!
I have three files, two of which contain reference data that I want to add to a line of output in the third file. I can't seem to get awk to print array contents as I would expect.
The input files are:
# Input file
AAA,OAA,0313... (2 Replies)
Discussion started by: maccas17
2 Replies
10. Shell Programming and Scripting
So I'm back once again beating my head off a wall trying to figure out how to get this to work.
My end goal is to take input such as what's below, which will be capture in real time with a tail -f from a file or piped output from another command:
... (5 Replies)
Discussion started by: ShadowBlade72
5 Replies
LEARN ABOUT DEBIAN
mkcover
MKCOVER(8) System Manager's Manual MKCOVER(8)
NAME
mkcover - HylaFAX continuation cover page generation command
SYNOPSIS
/var/spool/hylafax/bin/mkcover qfile template result
DESCRIPTION
bin/mkcover is the command invoked by the facsimile server when a continuation cover page is required for an outbound job that is about to
be retried. It generates a single POSTSCRIPT(R) page that is imaged according to the remote capabilities and transmitted as the cover
page. The arguments are:
qfile the job description file for the outbound job.
template the cover page template file, as used by the faxcover(1) program.
result the filename where the resultant POSTSCRIPT document should be written.
The default mkcover command is a shell script that uses awk(1) to parse the job description file and generate the cover page document. The
template file may be optionally compressed with compress(1), pack(1), or gzip(1); the filename suffix is used to decide whether or not the
template file contains compressed data.
SEE ALSO
faxq(8), hylafax-config(5), sendq(5)
June 20, 1994 MKCOVER(8)