Adding header once every 5 lines


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Adding header once every 5 lines
# 1  
Old 03-03-2011
Question Adding header once every 5 lines

Hi,

I need a help in creating a report file.
The input file is like this

1 A
2 B
3 V
4 X
5 m
6 O
7 X
8 p
9 a
10 X

There is a header which i have to print & save the result as a output file.
The header has multiple lines on is like say:
New New
S.No Name
(XX) (Y)
But i want the report file to be


New New
S.No Name
(XX) (Y)
1 A
2 B
3 V
4 X
5 m

---page break or a blank line----
New New
S.No Name
(XX) (Y)
6 O
7 X
8 p
9 a
10 X

Can this be possible using a SHELL SCRIPT?
I tried AWK & SED. but it helps inserting a single header, but i could find option to do this.
any pointers on this will be of great assistance.

Thanks
# 2  
Old 03-03-2011
Something like this?
Code:
awk -v str="\nNew\tNew\nS.No\tName\n(XX)\t(Y)\n" 'BEGIN{printf str} {if(NR%5==0){print $1"\t"$2;i=1}else{printf i==1?str$1"\t"$2"\n":$1"\t"$2"\n";i=0}}' infile

This User Gave Thanks to pravin27 For This Post:
# 3  
Old 03-03-2011
pravin27

But i get this error when doing so

The error context is
BEGIN{printf str} {if(NR%5==0){print $1"\t"$2;i=1}else{printf >>> i== <<<
awk: 0602-502 The statement cannot be correctly parsed. The source line is 1.

can yu plz help?
# 4  
Old 03-03-2011
I think you have missed something. Please see below my o/p
Code:
# cat format
1 A
2 B
3 V
4 X
5 m
6 O
7 X
8 p
9 a
10 X

Code:
#awk -v str="\nNew\tNew\nS.No\tName\n(XX)\t(Y)\n" 'BEGIN{printf str} {if(NR%5==0){print $1"\t"$2;i=1}else{printf i==1?str$1"\t"$2"\n":$1"\t"$2"\n";i=0}}' format

O/P
Code:
New     New
S.No    Name
(XX)    (Y)
1       A
2       B
3       V
4       X
5       m

New     New
S.No    Name
(XX)    (Y)
6       O
7       X
8       p
9       a
10      X

# 5  
Old 03-03-2011
through sed..
Code:
sed '1~5s/.*/\nNew New\nS.No Name\n(XX) (Y)\n&/' inputfile > outfile

# 6  
Old 03-03-2011
Hi michaelrozar17,
Cluld you please explain me the SED code ?
# 7  
Old 03-03-2011
Pravin27,

Thanks your awk works fine on LINUX box.
But i pity myself, the same thing doesnt work on AIX.... Smilie Smilie
It throws this error

Syntax Error The source line is 1.
The error context is
BEGIN{printf str} {if(NR%5==0){print $1"\t"$2;i=1}else{printf >>> i== <<<
awk: 0602-502 The statement cannot be correctly parsed. The source line is 1.

when i execute
Code:
 awk -v str="\nNew\tNew\nS.No\tName\n(XX)\t(Y)\n" 'BEGIN{printf str} {if(NR%5==0){print $1"\t"$2;i=1}else{printf i==1?str$1"\t"$2"\n":$1"\t"$2"\n";i=0}}' file1

nt sure why it fails on AIX Smilie Smilie
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Find header in a text file and prepend it to all lines until another header is found

I've been struggling with this one for quite a while and cannot seem to find a solution for this find/replace scenario. Perhaps I'm getting rusty. I have a file that contains a number of metrics (exactly 3 fields per line) from a few appliances that are collected in parallel. To identify the... (3 Replies)
Discussion started by: verdepollo
3 Replies

2. Shell Programming and Scripting

Need help in adding header of a file

Hi All , I have a pipe dilimited file .Sample file is below.I need to add header in that file through unix. 000001| 1|AQWWW|234,456.00 | | 123456| |41|abC| 0|xyZ| 000002| 2|11 4|1,234,456.99| | 0| |23| |99|! | 000003| 3|!!@#$|0,000,001.10| | ... (4 Replies)
Discussion started by: STCET22
4 Replies

3. UNIX for Dummies Questions & Answers

oneliner for adding header and trailer

for example, i have a file with below content: 123413 866688 816866 818818 i want the output as: This is header 123413 866688 816866 818818 This is trailer i am able to achieve it using a bash script. (2 Replies)
Discussion started by: pandeesh
2 Replies

4. Shell Programming and Scripting

adding header in a file

Hi team, In my script i am storing some value in a variable "header". I want to add the header value has header in a file. Please help me on this Thanks in advance, Baski (4 Replies)
Discussion started by: baskivs
4 Replies

5. UNIX for Dummies Questions & Answers

Adding header and trailer into a file

Hi, I want to add the below Header to all the files in sequence File1,File2,File3...etc "ABC,<number of chracter in the file>" e,g - If File1 is as below pqrstuvdt abcdefgh then I want to add the above header into it ,So that File1 becomes as below ABC,17 pqrstuvdt abcdefgh ... (9 Replies)
Discussion started by: spari2
9 Replies

6. UNIX for Dummies Questions & Answers

Rename a header column by adding another column entry to the header column name

Hi All, I have a file example.csv which looks like this GrpID,TargetID,Signal,Avg_Num CSCH74_1_1,2007,61,256 CSCH74_1_1,212007,647,679 CSCH74_1_1,12007,3,32 CSCH74_1_1,207,299,777 I want the output as GrpID,TragetID,Signal-CSCH74_1_1,Avg_Num CSCH74_1_1,2007,61,256... (1 Reply)
Discussion started by: Vavad
1 Replies

7. Shell Programming and Scripting

Rename a header column by adding another column entry to the header column name URGENT!!

Hi All, I have a file example.csv which looks like this GrpID,TargetID,Signal,Avg_Num CSCH74_1_1,2007,61,256 CSCH74_1_1,212007,647,679 CSCH74_1_1,12007,3,32 CSCH74_1_1,207,299,777 I want the output as GrpID,TragetID,Signal-CSCH74_1_1,Avg_Num CSCH74_1_1,2007,61,256... (4 Replies)
Discussion started by: Vavad
4 Replies

8. Shell Programming and Scripting

Adding new lines to a file + adding suffix to a pattern

I need some help with adding lines to file and substitute a pattern. Ok I have a file: #cat names.txt name: John Doe stationed: 1 name: Michael Sweets stationed: 41 . . . And would like to change it to: name: John Doe employed permanently stationed: 1-office (7 Replies)
Discussion started by: hemo21
7 Replies

9. UNIX for Dummies Questions & Answers

Adding a header to a log file

Hello, I’m trying to add a row that will server as the header for a space separated file. 1-I have a number of files save in a directory 2- grep text path/*.log > newfile newfile looks like this Field1 Field2 Field3 Field4 Field1 Field2 Field3 Field4 Field1 Field2 Field3 Field4 Field1... (2 Replies)
Discussion started by: rene reivera jr
2 Replies

10. UNIX for Dummies Questions & Answers

Adding header to an existing file

Dear All, I need to add a header of one line to an already existing file. I know that it can be achieved by the following: echo "Header" > newfile cat file1 >> newfile But my problem is that file is huge and there is no space for creating a new file every time. Is there a way that I can... (5 Replies)
Discussion started by: shash
5 Replies
Login or Register to Ask a Question