Can someone please explain the logic of awk arrays. I have been doing some reading but I dont understand this:
As I understand arr[] refs the arrays index, so while $2 is a string that cant be converted to a number its converted to 0 and incremented. What happens if $2 is a number and overwrites the value at an earlier index. Additionally in the for statement shouldnt arr[i] print the value of index i rather than the no of times of the value of index i.
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)
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)
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)
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=a$0" "}
else { if ((NR >= (5)) && (NR <= (13))) {
b=b$0" " }
else {if ((NR >= (14)) && (NR <= (25))){
c=c$0" "}
... (5 Replies)
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)
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)
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)
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)
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)
Perl::Critic::Policy::Variables::RequireNegativeIndices(User Contributed Perl DocumentatPerl::Critic::Policy::Variables::RequireNegativeIndices(3)NAME
Perl::Critic::Policy::Variables::RequireNegativeIndices - Negative array index should be used.
AFFILIATION
This Policy is part of the core Perl::Critic distribution.
DESCRIPTION
Perl treats a negative array subscript as an offset from the end. Given this, the preferred way to get the last element is $x[-1], not
$x[$#x] or $x[@x-1], and the preferred way to get the next-to-last is $x[-2], not "$x[$#x-1" or $x[@x-2].
The biggest argument against the non-preferred forms is that their semantics change when the computed index becomes negative. If @x
contains at least two elements, $x[$#x-1] and $x[@x-2] are equivalent to $x[-2]. But if it contains a single element, $x[$#x-1] and
$x[@x-2] are both equivalent to $x[-1]. Simply put, the preferred form is more likely to do what you actually want.
As Conway points out, the preferred forms also perform better, are more readable, and are easier to maintain.
This policy notices all of the simple forms of the above problem, but does not recognize any of these more complex examples:
$some->[$data_structure]->[$#{$some->[$data_structure]} -1];
my $ref = @arr; $ref->[$#arr];
CONFIGURATION
This Policy is not configurable except for the standard options.
AUTHOR
Chris Dolan <cdolan@cpan.org>
COPYRIGHT
Copyright (c) 2006-2011 Chris Dolan.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
perl v5.16.3 2014-06-09 Perl::Critic::Policy::Variables::RequireNegativeIndices(3)