Sponsored Content
Top Forums Shell Programming and Scripting Perl: batch replace a portion of text in files Post 302923600 by Chubler_XL on Monday 3rd of November 2014 05:53:49 PM
Old 11-03-2014
I'm unsure if a uncompressed pdf document is plain text. If so you could use awk for this problem:

Code:
awk '
BEGIN {
    rn="MDCLXVI" # Roman numerals desc order
    split("1000 500 100 50 10 5 1",v) # value for each numeral
}
function roman_val(s,val,c,d,p,q) {
    if(s !~ "^[" rn tolower(rn) "]+$") return 0;
    c = split(toupper(s),d,"")
    val = v[index(rn,d[c])]
    while (--c) {
      p = index(rn,d[c])
      q = index(rn,d[c+1])
      val += (p>q)? -v[p] : v[p]
    }
    return val
}
/p_[0-9]+/ {
  x=$0
  while(match(x, "p_[0-9]+")) {
      pg=substr(x,RSTART+2,RLENGTH-2)-16
      n=n substr(x,1,RSTART) "p_" pg
      x=substr(x,RSTART+RLENGTH)
  }
  $0= n x
}

$0 ~ "p_[" rn tolower(rn) "]+" {
  while(match($0, "p_[" rn tolower(rn) "]+")) {
      pg=roman_val(substr($0,RSTART+2,RLENGTH-2))-2
      x=substr($0,1,RSTART) "p_" pg substr($0,RSTART+RLENGTH)
      $0=x
  }
} 1' your_uncompressed.pdf

 

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
iob_new(3)						     Library Functions Manual							iob_new(3)

NAME
iob_new - create new I/O batch SYNTAX
#include <iob.h> io_batch* iob_new(int hint_entries); DESCRIPTION
iob_new creates a new I/O batch with enough space allocated for hint_entries entries (buffers or files). This is purely a performance hint, if you are unsure just pass 1. You can add buffers, strings and files to an I/O batch and then send it all at once using iob_send. The benefit of the I/O batch API is that it exploits platform specific APIs like FreeBSD's sendfile. The file contents will always be sent in a way that allows the operating systems to perform zero copy TCP, and the buffers will always be sent using as few syscalls as possible and avoiding unnecessary copying (using writev). RETURN VALUE
iob_new returns a pointer to an I/O batch data structure. If there was a memory allocation error, it returns NULL instead. SEE ALSO
iob_reset(3), iob_send(3), iob_addbuf(3), iob_adds_free(3), iob_addfile(3) iob_new(3)
All times are GMT -4. The time now is 04:05 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy