Replace character in odd or even lines


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Replace character in odd or even lines
# 8  
Old 04-12-2016
I once wrote a ksh-to-HTML-script for documentation purposes. The main generation part was in awk and it might help you as a starting point for your own script. Mostly it translates special characters into their HTML equivalents and creates the alternating stripes you want:

Code:
awk 'BEGIN {
          iLineNr=0;
          iOutIdx=1;
          lColor=0;
     }
     {
          chOutStr="";
          iOutIdx=1;
          iInLen=length( $0 );
          chBuffer="";

          for( iOutIdx=1; iOutIdx <= iInLen; iOutIdx++ ) {
               chBuffer=substr( $0, iOutIdx, 1 );
               if( chBuffer == " " ) {
                    chOutStr=chOutStr "*";
               } else if( chBuffer == "\t" ) {
                    chOutStr=sprintf("%s%s", chOutStr, substr("********", 1, 6*(8-(iOutIdx%8)) ) );
               } else if( chBuffer == "\x27" ) {
                    chOutStr=chOutStr "´";
               } else if( chBuffer == "<" ) {
                    chOutStr=chOutStr "&lt;";
               } else if( chBuffer == ">" ) {
                    chOutStr=chOutStr "&gt;";
               } else if( chBuffer == "&" ) {
                    chOutStr=chOutStr "&amp;";
               } else if( chBuffer == "ä" ) {
                    chOutStr=chOutStr "&auml;";
               } else if( chBuffer == "Ä" ) {
                    chOutStr=chOutStr "&Auml;";
               } else if( chBuffer == "ö" ) {
                    chOutStr=chOutStr "&ouml;";
               } else if( chBuffer == "Ö" ) {
                    chOutStr=chOutStr "&Ouml;";
               } else if( chBuffer == "ü" ) {
                    chOutStr=chOutStr "&uuml;";
               } else if( chBuffer == "Ü" ) {
                    chOutStr=chOutStr "&Uuml;";
               } else if( chBuffer == "ß" ) {
                    chOutStr=chOutStr "&szlig;";
               } else
                    chOutStr=chOutStr chBuffer;
          }
          if( chOutStr == "" )
               chOutStr = "*";
          iLineNr++;
          printf( "                    <tr");
          if( lColor == 1 ) {
               printf( " bgcolor=#BFBFBF" );
               lColor=0
          } else {
               printf( " bgcolor=#B0B0B0" );
               lColor=1
          }
          printf( ">\n" );
          printf( "                         <td align=right>" );
          if( iLineNr % 30 == 0 )
               printf( "<a href=#top>%d</a>", iLineNr );
          else
               printf( "%d", iLineNr );

          printf( "</td>\n" );
          printf( "                         <td>*</td>\n");
          printf( "                         <td><font size=-1><code>%s</code></font></td>\n", chOutStr);
          printf( "                    </tr>\n");
     }' file

I hope this helps.

bakunin
This User Gave Thanks to bakunin For This Post:
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Search a character and replace it with multiple lines

This is for AIX 6.1, I've a flat file and the format is like this DECLARE some statements; BEGIN some statements; END; I've to search BEGIN and replace it with the following 4 lines BEGIN For x in 1..1 LOOP BEGIN Similarly I've to search END and replace it with the... (7 Replies)
Discussion started by: Mukul Sharma
7 Replies

2. Shell Programming and Scripting

Sum product of even/odd lines

Hi, I have a text file like this 6.0000E-02 0.00000E+00 0.0000 0.00000E+00 0.0000 7.0000E-02 5.00000E-10 1.0000 5.00000E-10 1.0000 8.0000E-02 3.00000E-09 0.4082 3.00000E-09 0.4082 9.0000E-02 3.50000E-09 0.3780 3.50000E-09 0.3780 1.0000E-01 1.00000E-09... (2 Replies)
Discussion started by: f_o_555
2 Replies

3. Shell Programming and Scripting

Insert at the beginning of odd lines

Hello people, I am trying with sed to insert some text at the beginning of each odd line of a file but no luck. Can you please help. Awk is also suitable but I am not very familiar with it. Thank you in advance for any help. (7 Replies)
Discussion started by: drbiloukos
7 Replies

4. Emergency UNIX and Linux Support

Replace nth position character of all the lines in file

I want to replace 150th character of all the lines in a file using sed or awk... searched the forums but didn't find exact answer (9 Replies)
Discussion started by: greenworld123
9 Replies

5. Shell Programming and Scripting

How to search for pattern in odd lines?

Hi friends, I am looking for sed command/script that would search for a given fixed pattern on odd lines and then if it matches, prints the matching pattern and the next line. For example, in the example below, i am looking for pattern 0 and 1011 on odd lines. ########## start of example file... (10 Replies)
Discussion started by: kaaliakahn
10 Replies

6. Shell Programming and Scripting

replace/delete odd occurance

how to delete/replace the the odd occurance of a pattern say newline character "\n" a,b,c,d e,f g, h, i, j, k, l m,n 1, 2, 3, 4, 5, 6 1, 3, 4, 5, 6, 7 the output should be a,b,c,de,f g, h, i, j, k, lm,n 1, 2, 3, 4,5, 6 1, 3, 4, 5, 6, 7 (4 Replies)
Discussion started by: ratheeshjulk
4 Replies

7. Shell Programming and Scripting

print ODD lines

i want to print ODD lines like first ,third then fifth and so on 234,567,ABC,KJL 234,565,ABD,KJL 234,568,ABE,KJL 234,560,ABF,KJL 234,563,ABG,KJL 234,562,ABH,KJL O/P will be like 234,567,ABC,KJL ----->first liine 234,568,ABE,KJL ----->third line 234,563,ABG,KJL ----->fifth line... (6 Replies)
Discussion started by: aaysa123
6 Replies

8. UNIX for Dummies Questions & Answers

Odd Control Character issue ^A

Sorry to bug you, but my sed is failing me, I have a file auto generated from abinitio, it has a string of chars ending with a line break, and then it has added a ^A character, I can remove this is vi by using the following %s/^A//g (where ^A is ctrl v and control A), however when I try to sed... (1 Reply)
Discussion started by: badg3r
1 Replies

9. UNIX for Dummies Questions & Answers

odd character (^M) from .sh when chagining to .ksh

// AIX 5.3 I am trying to use .sh after changing it to .ksh Obviously, it doesn't like the file extension change. I am seeing a lot of odd characters (^M) like below: Init_Part2 ()^M^M {^M^M AWTRACE "AW SET"^M^M set | grep -e CFG_ -e OUTDIR_ENV^M^M AWTRACE "AW SET"^M^M ^M^M if ;... (2 Replies)
Discussion started by: Daniel Gate
2 Replies

10. Shell Programming and Scripting

Replace a perticular character of all lines of a file

Hi all, I am new to UNIX, so sorry if my question seem stupid to u. well i want to replace the first character of first 30 lines of a file, only if the first character is h. and in anothe script i want to replace a particular string/character say hello/h of a file.Condition: It should... (1 Reply)
Discussion started by: abovais
1 Replies
Login or Register to Ask a Question