Sponsored Content
Top Forums Shell Programming and Scripting Script to batch pdfjoin based on pdfgrep output Post 302605807 by nopposan on Thursday 8th of March 2012 02:25:20 PM
Old 03-08-2012
Mostly solved. A little advice needed to perfect.

Hello again, everybody. I've got a script that works pretty well, but only for files that are named without leading zeros. Our files are named with leading zeros. Please see the #comments# in the script which follows.

Code:
#!bin/bash
# This script works in its current form, but it's written for files that are named with the pattern pg_1.pdf, without leading zeros. Our files are named with four digits, the leading zeros being present if the page number is less than 1000. 'Need a script that will work with files named with the pattern pg_0001.pdf

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

Filename="pg_"$a".pdf" # This is the filename of the starting page.

until [ $b == 6 ]; do # The number sets the maximum pages to be considered for concatenation. Again, it could be set using user input.

Filename2="pg_"$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 capture only zero characters other than the seven 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
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
exit


Last edited by Corona688; 03-08-2012 at 03:46 PM.. Reason: Code tags for code, 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
TCPSER(1)						      General Commands Manual							 TCPSER(1)

NAME
tcpser - emulate a Hayes compatible modem SYNOPSIS
tcpser -d dev -s speed [-l log_level -t tracing_options] ... tcpser -v port [-l log_level -t tracing_options] ... DESCRIPTION
This manual page documents briefly the tcpser command. tcpser turns a PC serial port into an emulated Hayes compatible modem that uses TCP/IP for incoming and outgoing connections. It can be used to allow older applications and systems designed for modem use to operate on the Internet. tcpser supports all standard Hayes com- mands, and understands extended and vendor proprietary commands (though it does not implement many of them). tcpser can be used for both inbound and outbound connections. OPTIONS
A summary of options is included below. -h Show summary of options. -p Port to listen on (defaults to 6400). -t Trace flags: (can be combined) s modem input S modem output i IP input I IP output -l Log level: 0 (NONE), 1 (FATAL) - 7 (DEBUG_X) (defaults to 0). -L Log file (defaults to stderr). The following can be repeated for each modem desired (-s, -S, and -i will apply to any subsequent device if not set again): -d Serial device (e.g. /dev/ttyS0). Cannot be used with -v -v TCP port for VICE RS232 (e.g. 25232). Cannot be used with -d -s Serial port speed (defaults to 38400). -S Speed modem will report (defaults to -s value). -I Invert DCD pin. -n Add phone entry (number=replacement). -a Filename to send to local side upon answer. -A Filename to send to remote side upon answer. -c Filename to send to local side upon connect. -C Filename to send to remote side upon connect. -N Filename to send when no answer. -B Filename to send when modem(s) busy. -T Filename to send upon inactivity timeout. -i Modem init string (defaults to `', leave off `at' prefix when specifying). -D Direct connection (follow with hostname:port for caller, : for receiver). AUTHOR
tcpser was written by Jim Brain <brain@jbrain.com>. This manual page was written by Peter Collingbourne <pcc03@doc.ic.ac.uk>, for the Debian project (but may be used by others). July 5, 2006 TCPSER(1)
All times are GMT -4. The time now is 12:34 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy