Sponsored Content
Top Forums Shell Programming and Scripting Help with parsing file with combination of pattern Post 302919539 by Aia on Wednesday 1st of October 2014 10:31:38 PM
Old 10-01-2014
If you still are interested in a Perl solution.

Code:
#!/usr/bin/perl

use strict;
use warnings;

my $filename = shift or die "Missing filename to operate on it" ;
my $re = shift or die "Missing regex to match";

open my $fh, '<', $filename or die "Could not open $filename: $!\n";

while (my $line = <$fh>) {
    chomp $line;
    print "Line #$.\n";
    my @fields = split /\s+/, $line;
    my @patterns = grep{/$re/} @fields;

    my %patterns = map{$_ => 1} @patterns;
    my @NF = grep(!defined $patterns{$_}, @fields);

    for my $pattern (@patterns) {
        for my $field (@NF) {
            print "$pattern $field\n";
        }
    }
    print "\n";
}
close $fh

Result:

Code:
→ perl prog.pl filename prt1
Line #1
prt1|als28.1 prt3|als53.1
prt1|als28.1 prt2|als550.1
prt1|als28.1 prt2|als7.2
prt1|als28.1 prt2|bls0.2
prt1|bls9.2 prt3|als53.1
prt1|bls9.2 prt2|als550.1
prt1|bls9.2 prt2|als7.2
prt1|bls9.2 prt2|bls0.2

Line #2
prt1|bls871.1 prt2|als872.1
prt1|bls871.1 prt2|als6.2
prt1|bls871.1 prt4|als22.1
prt1|bls871.1 prt2|bls43.2

 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

awk and file combination

Hi there, I have 3 files and i want to take different fields from each file and combine them in one. I would like to ask if somebody tell me how can I refer to each field of the different files to write an awk command. I mean can I do sth like awk '........... print $1.file1 $3.file2}'... (1 Reply)
Discussion started by: sickboy
1 Replies

2. UNIX for Dummies Questions & Answers

shell help - file combination

Dear all, I have a question about merging multiple files to one. For example, I have 4 files, named file_1, file_2, file_3 and file_4, they all have same line number, and only one word in each line. I want to combine these four files to one file, file_1 becomes the first column of the new... (4 Replies)
Discussion started by: ting123
4 Replies

3. Shell Programming and Scripting

Parsing of file for Report Generation (String parsing and splitting)

Hey guys, I have this file generated by me... i want to create some HTML output from it. The problem is that i am really confused about how do I go about reading the file. The file is in the following format: TID1 Name1 ATime=xx AResult=yyy AExpected=yyy BTime=xx BResult=yyy... (8 Replies)
Discussion started by: umar.shaikh
8 Replies

4. Shell Programming and Scripting

pattern parsing

Can somebody show me an example of of using either '#' or '?' to remove part of string. I am reading files from directories and I want to check if file ends with *.log *.dmp or begins with a arch_* I DONT want to use AWK or SED to do this since there maybe 1000's of files I need to test... (4 Replies)
Discussion started by: BeefStu
4 Replies

5. Shell Programming and Scripting

help with awk for file combination

1)file1: | *Local Communication Bandwidths (MB/Sec) | Memory copy (bcopy) | | ^ | mmap_bandwidth | | ^ | mmap_read bandwidth | | ^ | memory write bandwidth | | Local Communication Latencies | Pipe Latency | 2)file2 422.6903 1948.9000 ... (9 Replies)
Discussion started by: yanglei_fage
9 Replies

6. UNIX for Dummies Questions & Answers

sed - combination of line deletion and pattern matching

I want to delete all the blank lines from a file before a certain line number. e.g. Input file (n: denotes line number) 1: a 2: 3: b 4: c 5: 6: d I want to delete all blank lines before line number 3, such that my output is: a b c d I see that sed '/^$/d' in_file works... (9 Replies)
Discussion started by: jawsnnn
9 Replies

7. Shell Programming and Scripting

Parsing and timestamp a pattern in log

Hello Thanks to Chubler_XL and MadeInGermany for their help few weeks ago. Now, i would like modifying the script, see the next POST. The old script works like that : I picked any random hours In the logs there is the stamp time of webservices, i can see the behavior or errors of... (3 Replies)
Discussion started by: amazigh42
3 Replies

8. Linux

Berkeley version bdf: combination of inode and file system usage

hello, i need a command like "bdf" of HP-UX. ( report number of free disk blocks (Berkeley version) ). it should report inode and file system usage in one line like bdf -i manpage : Man Page for bdf (all Section 1m) - The UNIX and Linux Forums HP-UX command "" report inode and file... (2 Replies)
Discussion started by: bora99
2 Replies

9. UNIX for Dummies Questions & Answers

Display latest record from file based on multiple columns combination

I have requirement to print latest record from file based on multiple columns combination. EWAPE EW1SLE0000 EW1SOMU01 ABORTED 03/16/2015 100004 03/16/2015 100005 001 EWAPE EW1SLE0000 EW1SOMU01 ABORTED 03/18/2015 140003 03/18/2015 140004 001 EWAPE EW1SLE0000 EW1SOMU01 ABORTED 03/18/2015 220006... (1 Reply)
Discussion started by: tmalik79
1 Replies

10. Shell Programming and Scripting

awk or a combination of commands to read and calculate nth lines from pattern

Two numerical lines, found by either header line, need to be added and the total placed in a new-header section. Also the total should should be rounded or cut to a two decimal anynumber.XX format with the AB string added on the end. For example: The numerical lines from headers 2 and 3 are... (3 Replies)
Discussion started by: jessandr
3 Replies
Perl::Critic::Policy::InputOutput::RequireCheckedOpen(3)User Contributed Perl DocumentatioPerl::Critic::Policy::InputOutput::RequireCheckedOpen(3)

NAME
Perl::Critic::Policy::InputOutput::RequireCheckedOpen - Write "my $error = open $fh, $mode, $filename;" instead of "open $fh, $mode, $filename;". AFFILIATION
This Policy is part of the core Perl::Critic distribution. DESCRIPTION
The perl builtin I/O function "open" returns a false value on failure. That value should always be checked to ensure that the open was successful. my $error = open( $filehandle, $mode, $filename ); # ok open( $filehandle, $mode, $filename ) or die "unable to open: $!"; # ok open( $filehandle, $mode, $filename ); # not ok use autodie; open $filehandle, $mode, $filename; # ok You can use autodie, Fatal, or Fatal::Exception to get around this. Currently, autodie is not properly treated as a pragma; its lexical effects aren't taken into account. CONFIGURATION
This Policy is not configurable except for the standard options. AUTHOR
Andrew Moore <amoore@mooresystems.com> ACKNOWLEDGMENTS
This policy module is based heavily on policies written by Jeffrey Ryan Thalhammer <jeff@imaginative-software.com>. COPYRIGHT
Copyright (c) 2007-2011 Andrew Moore. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. The full text of this license can be found in the LICENSE file included with this module. perl v5.16.3 2014-06-09 Perl::Critic::Policy::InputOutput::RequireCheckedOpen(3)
All times are GMT -4. The time now is 02:26 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy