Date: 07 Feb 2001 13:27:02 -0600 From: Tim Ayers <tayers@bridge.com> To: freebsd-questions@FreeBSD.ORG Subject: Re: sed & awk help...?! Message-ID: <d7cu1egp.fsf@tim.bridge.com> In-Reply-To: Marcus Ramos's message of "Wed, 07 Feb 2001 16:29:38 -0200" References: <054F7DAA9E54D311AD090008C74CE9BD01F1E94E@exchange.panasonicfa.com> <3A819412.BF10DCB2@ansp.br>
next in thread | previous in thread | raw e-mail | index | archive | help
I didn't see the original post, but here is a Perl solution. Actually
two: the first is a script-quality solution and the second is the
one-liner throw-away solution. Both read from STDIN, so just pipe your
data or include the filename as an argument, e.g.
cat mydata.txt | solution1.pl
or
perl -lane'push@a,$F[0];$b{$F[1]}=$F[2];END{$b{$_}&&print"$_ $b{$_}"for(sort@a)}' mydata.txt
-------------------------- solution 1 ---------------------------------
#!/usr/bin/perl -w
use strict;
my @keys = ();
my %mapping = ();
while (<>) {
chop;
my ($a, $b, $c) = split /\s+/;
push @keys, $a;
$mapping{$b} = $c;
}
for (sort @keys) {
print "$_ => $mapping{$_}\n" if exists $mapping{$_};
}
__END__
-------------------------- solution 2 ----------------------------------
perl -lane'push@a,$F[0];$b{$F[1]}=$F[2];END{$b{$_}&&print"$_ $b{$_}"for(sort@a)}'
__END__
HTH and
Hope you have a very nice day, :-)
tim
M> "Zaitsau, Andrei" wrote:
>> Hello Everyone,
>> I have small work related problem.
>> Can someone help me with that? It's more UNIX question.
>>
>> Please CC me as I am not subscribed to a list.
>>
>> Here The Problem.
>> I have a file. And there is 3 tables in it.
>>
>> 1 12 ac
>> 3 4 ab
>> 5 6 ac
>> 7 8 ac
>> 9 1 ab
>> 2 13 ab
>> 4 5 ac
>> 6 7 ab
>> 8 9 ab
>>
>> The thing I need is to do some sorting.
>> I guess it could be done with 'awk' or 'sed' utilities.
>>
>> Okay program looking at the first value of the first table and compare it to
>> the value in the second table. If it finds a match on the second table it
>> outputs to other file matching value plus corresponding value from the 3rd
>> table (just look at it as 2nd and 3rd tables are hard linked).
>>
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?d7cu1egp.fsf>
