Awk: Page number with total number of pages, EG Page 1 of 5


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Awk: Page number with total number of pages, EG Page 1 of 5
# 1  
Old 01-20-2020
Awk: Page number with total number of pages, EG Page 1 of 5

So I've worked how to add page numbers based on regex. It's using the footer text.

How do we get the total amount added so we have page number with the total number of pages?

Quote:
awk '/ This is the last line of the page!/{a++;$0=$0"\n Page No:"a}1' textfile1 > textfile2
Desired output: Page No:1 of 5

Thanks in advance.

Last edited by tugar; 01-20-2020 at 08:00 PM..
# 2  
Old 01-20-2020
process the file twice: first for calculating the total, and the second to print your summary.
# 3  
Old 01-20-2020
Thanks for this, this works but it looks like the whole document is being repeated?

Code:
#!/usr/local/bin/awk -f
#
#

BEGIN {FS=";"}

/This is the last line of the page/{a++;$0=$0"\n                          Page No:"a}1
/This is the last line of the page/{a++;$0=$0"\n                          Page Total:"a}1

Moderator's Comments:
Mod Comment
Please use code tags when posting data and code samples!

Last edited by vgersh99; 01-20-2020 at 07:58 PM.. Reason: code tags, please!
# 4  
Old 01-20-2020
Quote:
Originally Posted by tugar
Thanks for this, this works but it looks like the whole document is being repeated?

Code:
#!/usr/local/bin/awk -f
#
#

BEGIN {FS=";"}

/This is the last line of the page/{a++;$0=$0"\n                          Page No:"a}1
/This is the last line of the page/{a++;$0=$0"\n                          Page Total:"a}1

Moderator's Comments:
Mod Comment
Please use code tags when posting data and code samples!
Hmmm... I don't quite understand the code and this is NOT what I meant...

Code:
awk -F';' '

FNR== NR && /This is the last line of the page/{ total++;next}
/This is the last line of the page/{printf("Page No:%d of %d\n", ++page, total)}' textfile1  textfile1  > textfile12

I'll let you work out the exact formatting as you want...

Last edited by vgersh99; 01-20-2020 at 08:32 PM.. Reason: missing }
# 5  
Old 01-20-2020
Thanks for this.

Can you please explain the last line of code using the original file twice before the last output?

Quote:
/This is the last line of the page/{printf("Page No:%d of %d\n", ++page, total)' textfile1 textfile1 > textfile12
Using your snippet solves the issue although the final outfile only has the page numbers in a file but nothing else.

Quote:
Page No:1 of 3
Page No:2 of 3
Page No:3 of 3
# 6  
Old 01-20-2020
Code:
# when a string "This is last..." is found, print the CURRENT page count (page) incremented by 1 (++) and the total # of pages (total)
/This is the last line of the page/{printf("Page No:%d of %d\n", ++page, total)' textfile1 textfile1 > textfile12

As I noted, you'll have to format the final print out based on your desired format.
It's hard understand what's your desired output should look like...
What is it?
# 7  
Old 01-20-2020
Thanks again,

That string is actually the last line in a report print. It's a footer so every single page will have that line. The idea was to insert page numbers "Page 1 of X" on the next line under the footer string, counting each string as one page, it will only appear once per page.
Login or Register to Ask a Question

Previous Thread | Next Thread

8 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

script for adding page number before page breaks

Hi, If there is an expert that can help: I have many txt files that are produced from pdftotext that include page breaks the page breaks seem to be unix style hex 0C. I want to add page numbers before each page break as in : Page XXXX Regards antman (9 Replies)
Discussion started by: antman
9 Replies

2. Shell Programming and Scripting

Splitting of files - Addition of Page Number in the Trailer

Hi, I need your help on the following Scenario : Consider a file has 650 records and I need to split this file into 4 files having a maximum of 200 records in each of them and also for the first splitted file it should get appended with Page 1 as a trailer( Similarly for the second file, Page... (4 Replies)
Discussion started by: Ravichander
4 Replies

3. Shell Programming and Scripting

Help with sum total number of record and total number of record problem asking

Input file SFSQW 5192.56 HNRNPK 611.486 QEQW 1202.15 ASDR 568.627 QWET 6382.11 SFSQW 4386.3 HNRNPK 100 SFSQW 500 Desired output file SFSQW 10078.86 3 QWET 6382.11 1 QEQW 1202.15 1 HNRNPK 711.49 2 ASDR 568.63 1 The way I tried: (2 Replies)
Discussion started by: patrick87
2 Replies

4. What is on Your Mind?

Fedora Man Pages Reported Attack Page?

Is firefox complaining to anyone else that this is a Reported Attack Page!? I have used this site a million times and now it feels like complaining. Fedora Manpages: Home (5 Replies)
Discussion started by: cokedude
5 Replies

5. Emergency UNIX and Linux Support

Grab total page read from webalizer display in html

Hi, I need a way to grab the total combines since inception, total pages read from webalizer on my centos server or any other location (as long as since inception) and display the result live on my website So with each visit it would be increasing, or perhaps live (ajax) not sure But can... (0 Replies)
Discussion started by: lawstudent
0 Replies

6. Shell Programming and Scripting

How to input a number in a web page and pass to a script?

I am working on an embedded linux router and trying to make a webpage where the user can input a desired number of CPE and have a script update that number on the router. I have a CLI where I can log in and type the following to change that number echo "20">/proc/net/dbrctl/maxcpe which then... (7 Replies)
Discussion started by: BobTheBulldog
7 Replies

7. Shell Programming and Scripting

Perl find page number in a file

Hi i want to ask how can i use perl and find a word in a text file, and also telling that which page doesn't it exist? Eample: have a 10 pages text file, then i need to find 'Hello' in the file, and show that which page is it contain in. Output: Hello contains 8 times in page 1, 3, 4, 7, 10... (9 Replies)
Discussion started by: mingming88
9 Replies

8. News, Links, Events and Announcements

Unix Manual (man-page) pages in HTML

LINK: Unix Manual (man page) pages in HTML http://www.rt.com/man/ : More then 100 Commands found on a Unix system mannual pages can be obtained/refered here. Good Link.. (1 Reply)
Discussion started by: killerserv
1 Replies
Login or Register to Ask a Question