05-12-2009
Hi
Could anybody help me? I got this below code but its not working:
#!/usr/bin/perl
#
use strict;
my ($line, $nr);
my $thebigfile = "intxt.txt"; # input file location
#my $log = "$\.v"; # output files basename
# open input file
open(INFILE, "<$thebigfile");
foreach $line (<INFILE>) { # for each line
if( $line =~ /^module[" "]+[0-9]+[a-z]+\($/ ) {
$nr = $line;
$nr =~ s/^module//;
$nr =~ s/\(//;
close(OUTFILE);
open(OUTFILE, ">$nr\.v");
}
print OUTFILE $line;
}
close OUTFILE;
close INFILE;
10 More Discussions You Might Find Interesting
1. UNIX for Advanced & Expert Users
Hello,
i have a very big file that has more then 80 MBytes (100MBytes). So with my CVS Application I cannot commit this file (too Big) because it must have < 80 MBytes.
How can I split this file into two others files, i think the AIX Unix command :
split -b can do that, buit how is the right... (2 Replies)
Discussion started by: steiner
2 Replies
2. Shell Programming and Scripting
Greeting to all.
I have big text file that I would like to segment into many smaller files. Each file should be maximum 10 000 lines.
The file is called time.txt. after the execution of the file I would like to have.
time_01.txt, time_02, txt, ...,time_n.txt
Can anybody help.
Br. (2 Replies)
Discussion started by: flash80
2 Replies
3. Shell Programming and Scripting
Hi,
I have 2 files
format of file 1 is:
a1
b2
a2
c2
d1
f3
format of file 2 is (tab delimited):
a1 1.2 0.5 0.06 0.7 0.9 1 0.023
a3 0.91 0.007 0.12 0.34 0.45 1 0.7
a2 1.05 2.3 0.25 1 0.9 0.3 0.091
b1 1 5.4 0.3 9.2 0.3 0.2 0.1
b2 3 5 7 0.9 1 9 0 1
b3 0.001 1 2.3 4.6 8.9 10 0 1 0... (10 Replies)
Discussion started by: Lucky Ali
10 Replies
4. Shell Programming and Scripting
hi Guys
i need some help here..
i have a file which has > 800,000 lines in it. I need to split this file into smaller files with 25000 lines each.
please help
thanks (1 Reply)
Discussion started by: sitaldip
1 Replies
5. Shell Programming and Scripting
Hi,
I have a big text file with m columns and n rows. The format is like:
STF123450001000200030004STF123450005000600070008STF123450009001000110012
STF234560345002208330154STF234590705620600070080STF234567804094562357688
STF356780001000200030004STF356780005000600070080STF356780800094562657687... (2 Replies)
Discussion started by: wintersnow2011
2 Replies
6. Shell Programming and Scripting
Help needed urgently please.
I have a large file - a few hundred thousand lines.
Sample
CP START ACCOUNT
1234556
name 1
CP END ACCOUNT
CP START ACCOUNT
2224444
name 1
CP END ACCOUNT
CP START ACCOUNT
333344444
name 1
CP END ACCOUNT
I need to split this file each time "CP START... (7 Replies)
Discussion started by: frustrated1
7 Replies
7. HP-UX
Hi HP-admins,
I have 120GB file on HP-UX and need to split to 4GB pieces and join them on Windows.
As I don't want to use zipsplit, tried to use split command and join on windows using "copy /b" but it doesn't work (It merges and creates new file but file is corrupt)
What is the correct... (6 Replies)
Discussion started by: prvnrk
6 Replies
8. UNIX for Dummies Questions & Answers
hi ,
I have a requirement
input file:
1 1111111111111 108
1 1111111111111 109
1 1111111111111 109
1 1111111111111 110
1 1111111111111 111
1 1111111111111 111
1 1111111111111 111
1 1111111111111 112
1 1111111111111 112
1 1111111111111 112
The output should be, (19 Replies)
Discussion started by: mechvijays
19 Replies
9. UNIX for Dummies Questions & Answers
input file:
AD,00,--,---,---,---,---,---,---,--,--,---
AM,000,---,---,---,---,---,---
AR, ,---,--,---,---
AA,---,---,---,---
AT,---
AU,---,---,---
AS,---,---
AP,---,---,---
AI,---
AD,00,---,---,---, ,---,---,---,---,---,---
AM,000,---,---,---
AR,... (6 Replies)
Discussion started by: kcdg859
6 Replies
10. UNIX for Beginners Questions & Answers
Dears,
Need you help with the below file manipulation. I want to split the file into 8 smaller files but without cutting/disturbing the entries (meaning every small file should start with a entry and end with an empty line). It will be helpful if you can provide a one liner command for this... (12 Replies)
Discussion started by: Kamesh G
12 Replies
LEARN ABOUT DEBIAN
regexp::reggrp
Regexp::RegGrp(3pm) User Contributed Perl Documentation Regexp::RegGrp(3pm)
NAME
Regexp::RegGrp - Groups a regular expressions collection
VERSION
Version 1.002
DESCRIPTION
Groups regular expressions to one regular expression
SYNOPSIS
use Regexp::RegGrp;
my $reggrp = Regexp::RegGrp->new(
{
reggrp => [
{
regexp => '%name%',
replacement => 'John Doe',
modifier => $modifier
},
{
regexp => '%company%',
replacement => 'ACME',
modifier => $modifier
}
],
restore_pattern => $restore_pattern
}
);
$reggrp->exec( $scalar );
To return a scalar without changing the input simply use (e.g. example 2):
my $ret = $reggrp->exec( $scalar );
The first argument must be a hashref. The keys are:
reggrp (required)
Arrayref of hashrefs. The keys of each hashref are:
regexp (required)
A regular expression
replacement (optional)
Scalar or sub.
A replacement for the regular expression match. If not set, nothing will be replaced except "store" is set. In this case the
match is replaced by something like sprintf("x01%dx01", $idx) where $idx is the index of the stored element in the store_data
arrayref. If "store" is set the default is:
sub {
return sprintf( "x01%dx01", $_[0]->{store_index} );
}
If a custom restore_pattern is passed to to constructor you MUST also define a replacement. Otherwise it is undefined.
If you define a subroutine as replacement an hashref is passed to this subroutine. This hashref has four keys:
match Scalar. The match of the regular expression.
submatches Arrayref of submatches.
store_index The next index. You need this if you want to create a placeholder and store the replacement in the
$self->{store_data} arrayref.
opts Hashref of custom options.
modifier (optional)
Scalar. The default is 'sm'.
store (optional)
Scalar or sub. If you define a subroutine an hashref is passed to this subroutine. This hashref has three keys:
match Scalar. The match of the regular expression.
submatches Arrayref of submatches.
opts Hashref of custom options.
A replacement for the regular expression match. It will not replace the match directly. The replacement will be stored in the
$self->{store_data} arrayref. The placeholders in the text can easily be rereplaced with the restore_stored method later.
restore_pattern (optional)
Scalar or Regexp object. The default restore pattern is
qr~x01(d+)x01~
This means, if you use the restore_stored method it is looking for x010x01, x011x01, ... and replaces the matches with
$self->{store_data}->[0], $self->{store_data}->[1], ...
EXAMPLES
Example 1
Common usage.
#!/usr/bin/perl
use strict;
use warnings;
use Regexp::RegGrp;
my $reggrp = Regexp::RegGrp->new(
{
reggrp => [
{
regexp => '%name%',
replacement => 'John Doe'
},
{
regexp => '%company%',
replacement => 'ACME'
}
]
}
);
open( INFILE, 'unprocessed.txt' );
open( OUTFILE, '>processed.txt' );
my $txt = join( '', <INFILE> );
$reggrp->exec( $txt );
print OUTFILE $txt;
close(INFILE);
close(OUTFILE);
Example 2
A scalar is requested by the context. The input will remain unchanged.
#!/usr/bin/perl
use strict;
use warnings;
use Regexp::RegGrp;
my $reggrp = Regexp::RegGrp->new(
{
reggrp => [
{
regexp => '%name%',
replacement => 'John Doe'
},
{
regexp => '%company%',
replacement => 'ACME'
}
]
}
);
open( INFILE, 'unprocessed.txt' );
open( OUTFILE, '>processed.txt' );
my $unprocessed = join( '', <INFILE> );
my $processed = $reggrp->exec( $unprocessed );
print OUTFILE $processed;
close(INFILE);
close(OUTFILE);
AUTHOR
Merten Falk, "<nevesenin at cpan.org>"
BUGS
Please report any bugs or feature requests through the web interface at http://github.com/nevesenin/regexp-reggrp-perl/issues
<http://github.com/nevesenin/regexp-reggrp-perl/issues>.
SUPPORT
You can find documentation for this module with the perldoc command.
perldoc Regexp::RegGrp
COPYRIGHT & LICENSE
Copyright 2010, 2011 Merten Falk, all rights reserved.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
perl v5.14.2 2012-02-18 Regexp::RegGrp(3pm)