Sponsored Content
Top Forums Shell Programming and Scripting Perl - Sort and Count foreach line Post 302518254 by Chirel on Friday 29th of April 2011 03:35:42 AM
Old 04-29-2011
Hi,

like everytime with perl there are lot's of way to solve this.

i give you one, not optimized, using hash tables.

I should use at least map but i'm in a lazy day Smilie

Code:
#!/bin/perl
@strings = ("Shirt pants candy pants keychain",
"shirt shirt Candy gum sticker gum",
            "flowers shirt candy card card");

%hash=();

foreach $line(@strings){
    @spl = split(/ /, $line);

    foreach $temp (@spl) {
        $hash{lc $temp}++;
    }
}

foreach $i (keys(%hash)) {
    print "$i $hash{$i}\n";
}

Output:
Code:
flowers 1
gum 2
candy 3
card 2
pants 2
sticker 1
keychain 1
shirt 4


Last edited by Chirel; 04-29-2011 at 04:37 AM.. Reason: Add output.
This User Gave Thanks to Chirel For This Post:
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Nested foreach in perl

I have two arrays @nextArray contains some files like \main\1\Xul.xml@@\main\galileo_integration_sjc\0 \main\1\PortToStorageDialog.xml@@\main\galileo_integration_sjc\0 . . . \main\1\PreferencesDialog.xml@@\main\galileo_integration_sjc\0 @otherArray contains some files like ... (2 Replies)
Discussion started by: nmattam
2 Replies

2. Shell Programming and Scripting

Perl line count if it matches a pattern

#!/usr/bin/perl use Shell; open THEFILE, "C:\galileo_integration.txt" || die "Couldnt open the file!"; @wholeThing = <THEFILE>; close THEFILE; foreach $line (@wholeThing){ if ($line =~ m/\\0$/){ @nextThing = $line; if ($line =~ s/\\0/\\LATEST/g){ @otherThing =... (2 Replies)
Discussion started by: nmattam
2 Replies

3. Shell Programming and Scripting

How to count using foreach

I have a simple csh script that has a simple foreach loop that goes over numbers, from 1 to 10: foreach n(1 2 3 4 5 6 7 8 9 10) ... end Now I want to expand the script to work on over a hundred consecutive n values. Obviously, typing all the numbers between 1 to 100 is an unreasonable... (7 Replies)
Discussion started by: mcbenus
7 Replies

4. Programming

PERL, search and replace inside foreach loop

Hello All, Im a Hardware engineer, I have written this script to automate my job. I got stuck in the following location. CODE: .. .. ... foreach $key(keys %arr_hash) { my ($loc,$ind,$add) = split /,/, $arr_hash{$key}; &create_verilog($key, $loc, $ind ,$add); } sub create_verilog{... (2 Replies)
Discussion started by: riyasnr007
2 Replies

5. Shell Programming and Scripting

awk: sort lines by count of a character or string in a line

I want to sort lines by how many times a string occurs in each line (the most times first). I know how to do this in two passes (add a count field in the first pass then sort on it in the second pass). However, can it be done more optimally with a single AWK command? My AWK has improved... (11 Replies)
Discussion started by: Michael Stora
11 Replies

6. Shell Programming and Scripting

PERL foreach & open not working together

My script is as below: my $tile_list = `egrep "FCFP_TILE_LIST.*=" ${BudgetDir}/tile.params | sed -e 's/FCFP_TILE_LIST//' | sed -e 's/=//'`; print "Tile List = ".$tile_list."\n"; my @tiles = split(/\s+/, $tile_list); $unconst_out = "${DestDir}/Unconstrained_ports.rpt"; $check_tim_out =... (2 Replies)
Discussion started by: kuchi7
2 Replies

7. Shell Programming and Scripting

Need perl or shell script to sort vertical lines to horizontal line in csv format

Need perl or shell script to sort vertical lines to horizontal line in csv format My file like below ------------------------- ================================================================================ PATH PINKY1000#I1-1-ZENTA1000-2#I7-1-ASON-SBR-UP-943113845 ... (4 Replies)
Discussion started by: sreedhargouda.h
4 Replies

8. Shell Programming and Scripting

Perl - line count of a file

Hi, I am quite new to perl scripting. I have a dat file (datFile) from which I am pulling only first column and saving the output to a new file (f). From that file (f) I am removing blank lines and saving it to new file (datFile1). I am able to get the count of $f file in variable $cnt. But... (4 Replies)
Discussion started by: Neethu
4 Replies

9. UNIX for Advanced & Expert Users

Sort words based on word count on each line

Hi Folks :) I have a .txt file with thousands of words. I'm trying to sort the lines in order based on number of words per line. Example from: word word word word word word word word word word word word word word word word to desired output: word (2 Replies)
Discussion started by: martinsmith
2 Replies

10. Shell Programming and Scripting

Print perl hash value in foreach loop

Experts - Any advice on how to get a hash value in a foreach loop? Values print correctly on standalone print statements, but I can't access value in foreach loop. See sample code below and thanks in advance. foreach my $z (sort keys %hash) { for $y (@{$hash{$z}}) { print "$z... (6 Replies)
Discussion started by: timj123
6 Replies
install::TempContent::Objects::mod_perl-2.0.9::docs::apiUserRContributed Perinstall::TempContent::Objects::mod_perl-2.0.9::docs::api::APR::Util(3)

NAME
APR::Util - Perl API for Various APR Utilities Synopsis use APR::Util (); $ok = password_validate($passwd, $hash); Description Various APR utilities that don't fit into any other group. API
"APR::Util" provides the following functions and/or methods: "password_validate" Validate an encrypted password hash against a plain text password (with lots of restrictions and peculiarities). $ok = password_validate($passwd, $hash); arg1: $passwd ( string ) Plain text password string arg2: $hash ( string ) Encrypted or encoded hash. See below for supported hash formats. ret: $ok ( boolean ) The password either matches or not. since: 2.0.00 The function handles the output of the following functions (it knows to tell md5 and sha1 from the others, since they are have a special pattern recognized by apr): o md5 generated by "apr_md5_encode()" (for which at the moment we have no perl glue, ask if you need it). o sha1 generated by "apr_sha1_base64()" (for which at the moment we have no perl glue, ask if you need it). and it's available only since Apache 2.0.50 o crypt On all but the following platforms: MSWin32, beos and NetWare. Therefore you probably don't want to use that feature, unless you know that your code will never end up running on those listed platforms. Moreover on these three platforms if that function sees that the hash is not of md5 and sha1 formats, it'll do a clear to clear text matching, always returning success, no matter what the hashed value is. Warning: double check that you understand what this function does and does not before using it. Unsupported API "APR::Socket" also provides auto-generated Perl interface for a few other methods which aren't tested at the moment and therefore their API is a subject to change. These methods will be finalized later as a need arises. If you want to rely on any of the following methods please contact the the mod_perl development mailing list so we can help each other take the steps necessary to shift the method to an officially supported API. "filepath_name_get" META: Autogenerated - needs to be reviewed/completed [We have File::Spec and File::Basename for this purpose, I can't see why this api is needed] return the final element of the pathname $ret = filepath_name_get($pathname); arg1: $pathname ( string ) The path to get the final element of ret: $ret ( string ) the final element of the path For example: "/foo/bar/gum" => "gum" "/foo/bar/gum/" => "" "gum" => "gum" "bs\path\stuff" => "stuff" since: subject to change "password_get" META: Autogenerated - needs to be reviewed/completed Display a prompt and read in the password from stdin. $ret = password_get($prompt, $pwbuf, $bufsize); arg1: $prompt ( string ) The prompt to display arg2: $pwbuf ( string ) Buffer to store the password arg3: $bufsize (number) The length of the password buffer. ret: $ret (integer) since: subject to change See Also mod_perl 2.0 documentation. Copyright mod_perl 2.0 and its core modules are copyrighted under The Apache Software License, Version 2.0. Authors The mod_perl development team and numerous contributors. perl v5.18.2 2015-06-install::TempContent::Objects::mod_perl-2.0.9::docs::api::APR::Util(3)
All times are GMT -4. The time now is 03:24 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy