home *** CD-ROM | disk | FTP | other *** search
- Xref: sparky comp.sources.wanted:3766 alt.sources.wanted:1288
- Newsgroups: comp.sources.wanted,alt.sources.wanted
- Path: sparky!uunet!mcsun!Germany.EU.net!nixpbe!uranium!josef
- From: Josef Moellers <mollers.pad@sni.de>
- Subject: Re: script to center text
- Sender: josef@nixpbe.sni.de (Moellers)
- Message-ID: <josef.712322528@uranium>
- Date: Tue, 28 Jul 1992 11:22:08 GMT
- References: <AeRB8p600WB60JlPZc@andrew.cmu.edu>
- Organization: Siemens Nixdorf Info.Sys. AG, Paderborn, Germany
- Lines: 48
-
- In <AeRB8p600WB60JlPZc@andrew.cmu.edu> es2j+@andrew.cmu.edu (Edward John Sabol) writes:
-
- >Could someone post a awk, perl, or sed script which can center text. I'd
- >like to be able to pipe a file or region into it and get out the same
- >text only centered in 80 columns.
-
- >It shouldn't be hard to do, but I don't know awk or perl very well. I
- >can do it in C, of course, but I want a script for ease of portability
- >and the smaller size. Speed needn't be an issue.
-
- The following is a bourne shell script that does it, followed by a Korn
- shell script (caveat: both can't handle backslashes!):
-
- -sh-sh-sh-sh-sh-sh-sh-sh-sh-sh-sh-sh-sh-sh-sh-sh-sh-sh-sh-sh-sh-sh-sh-sh-
- #!/bin/sh
- while read line
- do len=`expr "$line" : '.*'`
- prefix=`expr \( 80 - $len \) / 2`
- while [ $prefix -ge 8 ]
- do echo '\t\c'
- prefix=`expr $prefix - 8`
- done
- while [ $prefix -ge 0 ]
- do echo ' \c'
- prefix=`expr $prefix - 1`
- done
- echo $line
- done
- -ksh-ksh-ksh-ksh-ksh-ksh-ksh-ksh-ksh-ksh-ksh-ksh-ksh-ksh-ksh-ksh-ksh-ksh-
- #!/usr/bin/ksh
- while read line
- do len=`expr "$line" : '.*'`
- let prefix=\(80-$len\)/2
- while [ $prefix -ge 8 ]
- do echo '\t\c'
- let prefix=$prefix-8
- done
- while [ $prefix -ge 0 ]
- do echo ' \c'
- let prefix=$prefix-1
- done
- echo $line
- done
- -end-end-end-end-end-end-end-end-end-end-end-end-end-end-end-end-end-end-
- --
- | Josef Moellers | c/o Siemens Nixdorf Informationssysteme AG |
- | USA: mollers.pad@sni-usa.com | Abt. STO-XS 113 | Riemekestrasse |
- | !USA: mollers.pad@sni.de | Phone: (+49) 5251 835124 | D-4790 Paderborn |
-