Sponsored Content
Top Forums Shell Programming and Scripting Script to batch pdfjoin based on pdfgrep output Post 302606162 by nopposan on Friday 9th of March 2012 05:11:47 PM
Old 03-09-2012
printf is nifty

Thanks!

Here's my updated script. I haven't tested it yet as I don't have any practice material at the moment.

Code:
#!bin/bash
# This script is written for files that are named with the pattern
#pg_0001.pdf, with leading zeros.

a=1 #Sets the starting page. 'Could set with user input.
b=$(($a+1))#Sets the next page equal to one more than the starting page.

Filename="pg_"`printf "%04d" $a`".pdf" # This is the filename of the
#starting page. The printf command is used to format the number with
#up to three leading zeros.

until [ $b == 680 ]; do # This line sets the maximum pages to be
#considered for concatenation.
Filename2="pg_"`printf "%04d" $b`".pdf" # This is the filename of the
#next file to be considered for concatenation to the current file.
x=`pdfgrep -C 0 [0-9]\{7\} $Filename | head -n 1` # pdfgrep with
#option to, -C, capture 0 characters other than the 7 digits in the
#employee ID; this is piped to "head" in order to get just the first
#occurrence.
y=`pdfgrep -C 0 [0-9]\{7\} $Filename2 | head -n 1`

if [ "$x" == "$y" ]; then 
    pdfjoin --rotateoversize 'false' $Filename $Filename2 --outfile $Filename # If the employee ID's are equal, then the pdf files
#are concatenated into a new file, which is given the name of the
#first file that's added to.
    rm $Filename2 # If the file is concatenated to a previous
#file, it is removed.
else
cp $Filename Empl_ID_"$x".pdf # Replace page number name with name
#based on Empl_ID.
#rm $Filename # Uncomment to remove the original file.
Filename=$Filename2 # If no match is found and the file is not
#concatenated, then advance the current origination file, Filename, to
#the name of the non-concatenated/non-matching file.
fi

b=$(($b+1)) # Advance the page number of the next file, Filename2.

done

cp $Filename Empl_ID_"$x".pdf # Finally, when all else is done,
#replace page number name with name of last file with one based on
#Empl_ID.

#rm $Filename # Uncomment to remove the original last file.

exit


Last edited by Corona688; 03-09-2012 at 06:32 PM.. Reason: Code tags, please.
 

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Shell script to email based on flat file output

Hi All, I am a newbee in unix but still have written a shell script which should trigger a mail based on certain conditions but the problem is that my file is not being read. Below is the code please advise. I do not know where is it failing. Note $ and the no followed with it is the no of... (1 Reply)
Discussion started by: apoorva
1 Replies

2. Shell Programming and Scripting

Automatically Rerun a script based on previous execution output

Hi Experts, I have a shell script called "updatevs" that is scheduled to run at 6.00 am everyday via cronjob. The cronjob will execute this script and output to a log file. The functionality of this script is to read the database and run a set of commands. This script is generally successful... (6 Replies)
Discussion started by: forumthreads
6 Replies

3. Shell Programming and Scripting

Converting line output to column based output

Hi Guys, I am trying to convert a file which has a row based output to a column based output. My original file looks like this: 1 2 3 4 5 6 1 2 3 1 2 3 (8 Replies)
Discussion started by: npatwardhan
8 Replies

4. Shell Programming and Scripting

help with email to be triggered based on fatal error detection from batch run log file neded

Hi, I require need help in two aspects actually: 1) Fatal error that gets generated as %F% from a log file say ABClog.dat to trigger a mail. At present I manually grep the log file as <grep %F% ABClog.dat| cut-d "%" -f1>. The idea is to use this same logic to grep the log file which is... (1 Reply)
Discussion started by: zico1986
1 Replies

5. 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

6. UNIX for Advanced & Expert Users

Limiting size of rsync batch output

Anyone know if there's a way to limit the size of rsync batch output blob? I need each batch to fix on a 64GB USB key. Using syntax like: rsync -av --only-write-batch=/Volumes/usb/batch --stats /Users/dfbadmin/sandbox/ /Users/dfbadmin/archives/ (7 Replies)
Discussion started by: dfbills
7 Replies

7. Shell Programming and Scripting

Extract batch based on condition

HI, I have a file as mentioned below. Here one batch is for one user id.Batch starts from |T row and ends at .T row. I want to create a new file by reading this file. The condition is for record 10(position 1-2), if position 3 to position 17 is 0 then delete the entire batch and write into the new... (9 Replies)
Discussion started by: abhi.mit32
9 Replies

8. Shell Programming and Scripting

SFTP or scp with password in a batch script without using SSH keys and expect script

Dear All, I have a requirement where I have to SFTP or SCP a file in a batch script. Unfortunately, the destination server setup is such that it doesn't allow for shell command line login. So, I am not able to set up SSH keys. My source server is having issues with Expect. So, unable to use... (5 Replies)
Discussion started by: ss112233
5 Replies

9. UNIX for Beginners Questions & Answers

Finding The Complete SQL statement Using PDFGREP Or Grep

Linux Gods, I am simply attempting to parse SQL statements from a PDF doc in creating a base SQL script at a later time but for the life of me, am having a tough time extracting this data.This exact string worked perfectly a couple of months ago and now it doesnt. Below is an example of the data... (4 Replies)
Discussion started by: metallica1973
4 Replies
Filename(3)							   OCaml library						       Filename(3)

NAME
Filename - Operations on file names. Module Module Filename Documentation Module Filename : sig end Operations on file names. val current_dir_name : string The conventional name for the current directory (e.g. . in Unix). val parent_dir_name : string The conventional name for the parent of the current directory (e.g. .. in Unix). val dir_sep : string The directory separator (e.g. / in Unix). Since 3.11.2 val concat : string -> string -> string concat dir file returns a file name that designates file file in directory dir . val is_relative : string -> bool Return true if the file name is relative to the current directory, false if it is absolute (i.e. in Unix, starts with / ). val is_implicit : string -> bool Return true if the file name is relative and does not start with an explicit reference to the current directory ( ./ or ../ in Unix), false if it starts with an explicit reference to the root directory or the current directory. val check_suffix : string -> string -> bool check_suffix name suff returns true if the filename name ends with the suffix suff . val chop_suffix : string -> string -> string chop_suffix name suff removes the suffix suff from the filename name . The behavior is undefined if name does not end with the suffix suff . val chop_extension : string -> string Return the given file name without its extension. The extension is the shortest suffix starting with a period and not including a directory separator, .xyz for instance. Raise Invalid_argument if the given name does not contain an extension. val basename : string -> string Split a file name into directory name / base file name. If name is a valid file name, then concat (dirname name) (basename name) returns a file name which is equivalent to name . Moreover, after setting the current directory to dirname name (with Sys.chdir ), references to basename name (which is a relative file name) designate the same file as name before the call to Sys.chdir . This function conforms to the specification of POSIX.1-2008 for the basename utility. val dirname : string -> string See Filename.basename . This function conforms to the specification of POSIX.1-2008 for the dirname utility. val temp_file : ?temp_dir:string -> string -> string -> string temp_file prefix suffix returns the name of a fresh temporary file in the temporary directory. The base name of the temporary file is formed by concatenating prefix , then a suitably chosen integer number, then suffix . The optional argument temp_dir indicates the tempo- rary directory to use, defaulting to the current result of Filename.get_temp_dir_name . The temporary file is created empty, with permis- sions 0o600 (readable and writable only by the file owner). The file is guaranteed to be different from any other file that existed when temp_file was called. Raise Sys_error if the file could not be created. Before3.11.2 no ?temp_dir optional argument val open_temp_file : ?mode:Pervasives.open_flag list -> ?temp_dir:string -> string -> string -> string * Pervasives.out_channel Same as Filename.temp_file , but returns both the name of a fresh temporary file, and an output channel opened (atomically) on this file. This function is more secure than temp_file : there is no risk that the temporary file will be modified (e.g. replaced by a symbolic link) before the program opens it. The optional argument mode is a list of additional flags to control the opening of the file. It can contain one or several of Open_append , Open_binary , and Open_text . The default is [Open_text] (open in text mode). Raise Sys_error if the file could not be opened. Before3.11.2 no ?temp_dir optional argument val get_temp_dir_name : unit -> string The name of the temporary directory: Under Unix, the value of the TMPDIR environment variable, or "/tmp" if the variable is not set. Under Windows, the value of the TEMP environment variable, or "." if the variable is not set. The temporary directory can be changed with File- name.set_temp_dir_name . Since 4.00.0 val set_temp_dir_name : string -> unit Change the temporary directory returned by Filename.get_temp_dir_name and used by Filename.temp_file and Filename.open_temp_file . Since 4.00.0 val temp_dir_name : string Deprecated. The name of the initial temporary directory: Under Unix, the value of the TMPDIR environment variable, or "/tmp" if the vari- able is not set. Under Windows, the value of the TEMP environment variable, or "." if the variable is not set. This function is depre- cated; Filename.get_temp_dir_name should be used instead. Since 3.09.1 val quote : string -> string Return a quoted version of a file name, suitable for use as one argument in a command line, escaping all meta-characters. Warning: under Windows, the output is only suitable for use with programs that follow the standard Windows quoting conventions. OCamldoc 2014-06-09 Filename(3)
All times are GMT -4. The time now is 02:32 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy