home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #16 / NN_1992_16.iso / spool / comp / sources / wanted / 3766 < prev    next >
Encoding:
Internet Message Format  |  1992-07-28  |  2.0 KB

  1. Xref: sparky comp.sources.wanted:3766 alt.sources.wanted:1288
  2. Newsgroups: comp.sources.wanted,alt.sources.wanted
  3. Path: sparky!uunet!mcsun!Germany.EU.net!nixpbe!uranium!josef
  4. From: Josef Moellers <mollers.pad@sni.de>
  5. Subject: Re: script to center text
  6. Sender: josef@nixpbe.sni.de (Moellers)
  7. Message-ID: <josef.712322528@uranium>
  8. Date: Tue, 28 Jul 1992 11:22:08 GMT
  9. References: <AeRB8p600WB60JlPZc@andrew.cmu.edu>
  10. Organization: Siemens Nixdorf Info.Sys. AG, Paderborn, Germany
  11. Lines: 48
  12.  
  13. In <AeRB8p600WB60JlPZc@andrew.cmu.edu> es2j+@andrew.cmu.edu (Edward John Sabol) writes:
  14.  
  15. >Could someone post a awk, perl, or sed script which can center text. I'd
  16. >like to be able to pipe a file or region into it and get out the same
  17. >text only centered in 80 columns.
  18.  
  19. >It shouldn't be hard to do, but I don't know awk or perl very well. I
  20. >can do it in C, of course, but I want a script for ease of portability
  21. >and the smaller size. Speed needn't be an issue.
  22.  
  23. The following is a bourne shell script that does it, followed by a Korn
  24. shell script (caveat: both can't handle backslashes!):
  25.  
  26. -sh-sh-sh-sh-sh-sh-sh-sh-sh-sh-sh-sh-sh-sh-sh-sh-sh-sh-sh-sh-sh-sh-sh-sh-
  27. #!/bin/sh
  28. while read line
  29. do len=`expr "$line" : '.*'`
  30.    prefix=`expr \( 80 - $len \) / 2`
  31.    while [ $prefix -ge 8 ]
  32.    do echo '\t\c'
  33.       prefix=`expr $prefix - 8`
  34.    done
  35.    while [ $prefix -ge 0 ]
  36.    do echo ' \c'
  37.       prefix=`expr $prefix - 1`
  38.    done
  39.    echo $line
  40. done
  41. -ksh-ksh-ksh-ksh-ksh-ksh-ksh-ksh-ksh-ksh-ksh-ksh-ksh-ksh-ksh-ksh-ksh-ksh-
  42. #!/usr/bin/ksh
  43. while read line
  44. do len=`expr "$line" : '.*'`
  45.    let prefix=\(80-$len\)/2
  46.    while [ $prefix -ge 8 ]
  47.    do echo '\t\c'
  48.       let prefix=$prefix-8
  49.    done
  50.    while [ $prefix -ge 0 ]
  51.    do echo ' \c'
  52.       let prefix=$prefix-1
  53.    done
  54.    echo $line
  55. done
  56. -end-end-end-end-end-end-end-end-end-end-end-end-end-end-end-end-end-end-
  57. -- 
  58. | Josef Moellers        | c/o Siemens Nixdorf Informationssysteme AG  |
  59. |  USA: mollers.pad@sni-usa.com    | Abt. STO-XS 113       | Riemekestrasse   |
  60. | !USA: mollers.pad@sni.de    | Phone: (+49) 5251 835124 | D-4790 Paderborn |
  61.