Need help in adding header of a file


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Need help in adding header of a file
# 1  
Old 09-14-2015
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.
HTML Code:
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|     |      9|     | 0|XSW|12|  7|    
000004|     4|     |            |     |   3400|     | 2|r7!|72|xY1| 
We need to add header like below .
col1|col2|col3|col4|col5|col6|col7|col8|col9|col10|col11|col12|col13|col14|col15|col16|col17|col18|c ol19|col20|col21|col22|col23|col24|col25|col26

If anyone can help me in this regard ,this will be highly beneficial for me.Thanks .
# 2  
Old 09-14-2015
Please use code tags as required by forum rules!

How and where is that header stored?

---------- Post updated at 12:07 ---------- Previous update was at 12:05 ----------

Any attempts from your side?

---------- Post updated at 12:07 ---------- Previous update was at 12:07 ----------

Does it matter that No. of columns differ in header and data?

---------- Post updated at 12:08 ---------- Previous update was at 12:07 ----------

Howsoever, try
Code:
echo "col1|col2|col3|col4|col5|col6|col7|col8|col9|col10|col11|col12|col13|col14|col15|col16|col17|col18|c ol19|col20|col21|col22|col23|col24|col25|col26"; cat file
col1|col2|col3|col4|col5|col6|col7|col8|col9|col10|col11|col12|col13|col14|col15|col16|col17|col18|c ol19|col20|col21|col22|col23|col24|col25|col26
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|     |      9|     | 0|XSW|12|  7|    
000004|     4|     |            |     |   3400|     | 2|r7!|72|xY1|

# 3  
Old 09-14-2015
Quote:
Originally Posted by STCET22
Hi All ,
I have a pipe dilimited file .Sample file is below.I need to add header in that file through unix.
HTML Code:
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|     |      9|     | 0|XSW|12|  7|    
000004|     4|     |            |     |   3400|     | 2|r7!|72|xY1| 
We need to add header like below .
col1|col2|col3|col4|col5|col6|col7|col8|col9|col10|col11|col12|col13|col14|col15|col16|col17|col18|c ol19|col20|col21|col22|col23|col24|col25|col26

If anyone can help me in this regard ,this will be highly beneficial for me.Thanks .
Hello STCET22,

Following may help you in same.
Code:
awk 'BEGIN{OFS="|";for(i=1;i<=26;i++){O=O?O OFS "col"i:"col"i};print O;O=""}1'  Input_file

Output will be as follows.
Code:
col1|col2|col3|col4|col5|col6|col7|col8|col9|col10|col11|col12|col13|col14|col15|col16|col17|col18|col19|col20|col21|col22|col23|col24|col25|col26
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|     |      9|     | 0|XSW|12|  7|
000004|     4|     |            |     |   3400|     | 2|r7!|72|xY1|

Thanks,
R. Singh
# 4  
Old 09-14-2015
You may try this too

Code:
seq -s\| -f'col%g' 1 26 | cat -  input_file >new_output_file

Sample Test

Code:
[akshay@localhost tmp]$ seq 1 5 >test
[akshay@localhost tmp]$ cat test 
1
2
3
4
5
[akshay@localhost tmp]$ seq -s\| -f'col%g' 1 26 | cat - test >newfile
[akshay@localhost tmp]$ cat newfile 
col1|col2|col3|col4|col5|col6|col7|col8|col9|col10|col11|col12|col13|col14|col15|col16|col17|col18|col19|col20|col21|col22|col23|col24|col25|col26
1
2
3
4
5

# 5  
Old 09-14-2015
If you want to keep the columns aligned and just put out headings for existing fields, you could try something like:
Code:
awk '
BEGIN {	FS = OFS = "|"
}
FNR == 1 {
	for(i = 1; i <= NF; i++) {
		if(fw = length($i)) {
			hw = length(h = "col" i)
			if(fw < hw)
				h = substr(h, hw - fw + 1)
		} else	 h = ""
		printf("%s%*s", i == 1 ? "" : OFS, fw, h)
	}
	print ""
}
1' file

which, with your sample input file produces the output:
Code:
  col1|  col2| col3|        col4| col5|   col6| col7|l8|ol9|10|l11|
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|     |      9|     | 0|XSW|12|  7|    
000004|     4|     |            |     |   3400|     | 2|r7!|72|xY1|

Note that this code makes the assumption that each field contains the same number of characters (which is not true in your sample input). The last field (after the last |) in your sample, contains 0, 1, 3, or 4 spaces depending on which line you check. The first line contains 0 spaces after the last delimiter so the field width is assumed to be zero, thereby producing a zero length heading.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Adding header to sub files after splitting the main file using AWK

Hi Folks, I have a file like: mainfile.txt: ------------- file1 abc def xyz file1 aaa pqr xyz file2 lmn ghi xyz file2 bbb tuv xyz I need output having two files file1 and file2. file1: ------ Name State Country abc def xyz aaa pqr xyz file2: (3 Replies)
Discussion started by: tanmay.gemini
3 Replies

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

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

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

5. Shell Programming and Scripting

Adding Header and Trailer records to a appended file

How can we a shell script and pass date parameters .I have 3 files comming from Datastage with |" delimited I need append 3 files as above: File1: P0000|"47416954|"AU|"000|"INS|"0000|"|"20060601|"99991231|"|"|"|"|"01 File 2:... (2 Replies)
Discussion started by: e1994264
2 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 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 (15 Replies)
Discussion started by: aravindan
15 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