Sponsored Content
Top Forums Shell Programming and Scripting Perl: batch replace a portion of text in files Post 302923824 by Chubler_XL on Tuesday 4th of November 2014 03:33:35 PM
Old 11-04-2014
How about this perl solution using the Roman CPAN module:

Code:
use warnings;
use strict;

use Roman;

our @array = `find -P . -type f -name \'*.pdf\'`;

foreach my $p (@array){

    chomp($p);
    open(my $source, $p) or die "Cannot open file $p";
    open(my $dest, '>', $p . ".new") or die "Cannot open output file $p.new";
    binmode($source);
    binmode($dest);

    while(my $line = <$source>){
        while (my ($page) = $line =~ /pp_(\d+)/) {
            my $newpage = $page-16;
            $line =~ s/pp_$page/zUNIQz_$newpage/;
        }
        while (my ($rdigit) = $line =~ /pp_([MDCLXVI]+)/i) {
           my $newpage = arabic($rdigit)-2;
           $line =~ s/pp_$rdigit/zUNIQz_$newpage/;
        }
        $line =~ s/zUNIQz_/pp_/g;
        print $dest $line;
    }
    close($source);
    close($dest);
    rename "$p" => "$p.bak" or
          die "can't rename $p to $p.bak";
    rename "$p.new" => "$p" or
          die "can't rename $p.new to $p";
}

 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Find and replace portion of file names

Hey all, So I know you can easily find and replace words and strings in text files, but is there an easy way to find and replace just a sub-portion of text in the file name. For example, in a directory I have tons of file names that start with F00001-0708, and I want to change all the files to... (2 Replies)
Discussion started by: hertingm
2 Replies

2. Shell Programming and Scripting

Find and add/replace text in text files

Hi. I would like to have experts help on below action. I have text files in which page nubmers exists in form like PAGE : 1 PAGE : 2 PAGE : 3 and so on there is other text too. I would like to know is it possible to check the last occurance of Page... (6 Replies)
Discussion started by: lodhi1978
6 Replies

3. Shell Programming and Scripting

Replace/Remove not specific text in perl

Hello, Consider that i have many files that have the below format: file1 900 7777 1000 5 6 23 nnnnnnnnnnnnnnnnnn 1100 kkkkkkk file2 900 1989 1000 5 3 10 kkkdfdfdffd 1100 kkkkkkk What i would like to do is on every file to search the line that starts with... (4 Replies)
Discussion started by: chriss_58
4 Replies

4. Shell Programming and Scripting

Executing a batch of files within a shell script with option to refire the individual files in batch

Hello everyone. I am new to shell scripting and i am required to create a shell script, the purpose of which i will explain below. I am on a solaris server btw. Before delving into the requirements, i will give youse an overview of what is currently in place and its purpose. ... (2 Replies)
Discussion started by: goddevil
2 Replies

5. Shell Programming and Scripting

perl : replace multiline text between two marker points

Hi there I just wondered if someone could give me some perl advice I have a bunch of text files used for a wiki that have common headings such as ---++ Title blah ---++ Summary blah ---++ Details Here is the multiline block of text I wish to (6 Replies)
Discussion started by: rethink
6 Replies

6. UNIX for Dummies Questions & Answers

Perl one liner to replace text

Not quite a unix question but problem in a perl command. Taking a chance if someone knows about the error cat 1 a b c d perl -p -e 's/a/b/g' 1 b b c d What is the problem here?? perl -p -i -e 's/a/b/g' 1 Can't remove 1: Text file busy, skipping file. (2 Replies)
Discussion started by: analyst
2 Replies

7. Shell Programming and Scripting

perl script to replace the text in the original file

Hi Folks, I have an html file which contains the below line in the body tagI am trying the replace hello with Hello Giridhar programatically. <body> <P><STRONG><FONT face="comic sans ms,cursive,sans-serif"><EM>Hello</EM></FONT></STRONG></P> </body> I have written the below code to... (3 Replies)
Discussion started by: giridhar276
3 Replies

8. Shell Programming and Scripting

Shell or perl script to replace XML text in bulk

Hi, I am looking for assistance over shell or perl (without XML twig module) which replace string in XML file under particular branch..example of code file sample.. Exact requirment : Replace "Su saldo es" in below file with "Your balance" but only in XML branch of Text id=98 and Text Id=12... (7 Replies)
Discussion started by: Ashu_099
7 Replies

9. Shell Programming and Scripting

Bash to add portion of text to files in directory using numerical match

In the below bash I am trying to rename eachof the 3 text files in /home/cmccabe/Desktop/percent by matching the numerical portion of each file to lines 3,4, or 5 in /home/cmccabe/Desktop/analysis.txt. There will always be a match between the files. When a match is found each text file in... (2 Replies)
Discussion started by: cmccabe
2 Replies

10. Shell Programming and Scripting

Required to get a portion of a text

Hello Gurus, I have a filesystem like below : /u03/oracle/EBSDEV/fs1/EBSapps/appl I want to get only the portion of the above text like below... /u03/oracle/EBSDEV Can you please advice on this? Thanks- P (5 Replies)
Discussion started by: pokhraj_d
5 Replies
Pod::Tree::Pod(3pm)					User Contributed Perl Documentation				       Pod::Tree::Pod(3pm)

NAME
Pod::Tree::Pod - Convert a Pod::Tree back to a POD SYNOPSIS
use Pod::Tree::Pod; $tree = new Pod::Tree; $dest = new IO::File; $dest = "file.pod"; $pod = new Pod::Tree::Pod $tree, $dest; $pod->translate; DESCRIPTION
"Pod::Tree::Pod" converts a Pod::Tree back to a POD. The destination is fixed when the object is created. The "translate" method does the actual translation. For convenience, Pod::Tree::Pod can write the POD to a variety of destinations. The "new" method resolves the $dest argument. Destination resolution "Pod::Tree::Pod" can write HTML to either of 2 destinations. "new" resolves $dest by checking these things, in order: 1. If $dest is a reference, then it is taken to be an "IO::File" object that is already open on the file where the POD will be written. 2. If $dest is not a reference, then it is taken to be the name of the file where the POD will be written. METHODS
$pod = "new" "Pod::Tree::Pod" $tree, $dest Creates a new "Pod::Tree::Pod" object. $tree is a "Pod::Tree" object that represents a POD. $pod writes the POD to $dest. See "Destination resolution" for details. $pod->"translate" Writes the text of the POD. This method should only be called once. DIAGNOSTICS
"Pod::Tree::Pod::new: not enough arguments" (F) "new" called with fewer than 2 arguments. "Pod::Tree::HTML::new: Can't open $dest: $!" (F) The destination file couldn't be opened. NOTES
o The destination doesn't actually have to be an "IO::File" object. It may be any object that has a "print" method. SEE ALSO
perl(1), "Pod::Tree", "Pod::Tree::Node" AUTHOR
Steven McDougall, swmcd@world.std.com COPYRIGHT
Copyright (c) 2000-2003 by Steven McDougall. This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. perl v5.10.1 2004-10-11 Pod::Tree::Pod(3pm)
All times are GMT -4. The time now is 11:26 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy