Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ newform(1) — Reliant UNIX 5.44c4

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

csplit(1)

tabs(1)

fspec(4)

newform(1)                                                       newform(1)

NAME
     newform - Format einer Textdatei ändern (new format)

SYNTAX
     newform [option ...] [datei ...]

BESCHREIBUNG
     Mit newform können Sie Textdateien oder Text, den newform von der
     Standardeingabe liest, neu formatieren.

     newform formatiert den Eingabetext zeilenweise entsprechend den ange-
     gebenen Optionen. Das Ergebnis schreibt newform auf die Standardaus-
     gabe.

OPTIONEN
     Keine Option angegeben:
          newform schreibt die eingelesenen Zeilen unverändert auf die
          Standardausgabe.

     Die Optionen müssen einzeln, von anderen Optionen durch Leerzeichen
     getrennt, eingegeben werden (siehe BEISPIELE). Die Reihenfolge der
     Optionen ist entscheidend für die Wirkungsweise von newform. Die
     Optionen werden der Reihe nach abgearbeitet.

     Zum Beispiel liefert die Optionenfolge -e15 -l60 ein anderes Ergebnis
     als -l60 -e15.

     Mit Ausnahme von -s können Sie die Optionen mehrmals angeben.

     Die Optionen dürfen auch zwischen oder nach den Dateinamen stehen;
     dies hat dieselbe Wirkung, als wenn alle Optionen vor den Dateinamen
     stünden.

     Alle angegebenen Optionen gelten für alle angegebenen Dateien.

   Tabulatorzeichen in Leerzeichen umwandeln

     -i[tabspec]
          (i - input tab specification) Mit dieser Option können Sie Tabu-
          latorzeichen in Leerzeichen umwandeln. Mit Hilfe von tabspec
          definieren Sie eine Liste von Tabulatorstopps. newform wandelt
          dann jedes Tabulatorzeichen der Eingabezeile in so viele Leerzei-
          chen um, daß das darauffolgende Zeichen auf einem Tabulatorstopp
          steht (siehe Beispiel 1).

          tabspec nicht angegeben:

          tabspec hat den Standardwert -8; d. h. newform nimmt Tabulator-
          stopps in den Spalten 1, 9, 17, 25 usw. an.

          tabspec angegeben:




Seite 1                      Reliant UNIX 5.44               Gedruckt 11/98

newform(1)                                                       newform(1)

          tabspec kann die folgenden Werte annehmen:

          -n, -0;

          n1,n2,...;

          -a, -a2, -c, -c2, -c3, -f, -p, -s, -u;

          --, --name.

          -n   newform nimmt Tabulatorstopps in den Spalten 1, 1+n, 1+2*n,
               1+3*n usw. an.

               n ist eine ganze Zahl größer gleich 1.

          -0   newform erwartet keine Tabulatorzeichen. Enthält die Einga-
               bezeile dennoch Tabulatorzeichen, so werden diese Tabulator-
               zeichen in je ein Leerzeichen umgewandelt. Die Angabe von
               -i-0 liefert also das gleiche Ergebnis wie die Angabe von
               -i-1.

          n1,n2,...
               newform nimmt Tabulatorstopps in den Spalten n1, n2 usw. an.

               n1, n2 usw. sind ganze Zahlen größer oder gleich 1. Schrei-
               ben Sie vor eine der Zahlen ein Pluszeichen +, wird der
               nachfolgende Wert zur zuletzt angegebenen Zahl addiert und
               die Summe als neuer Tabulatorstopp eingesetzt. Die Zahlen
               müssen in aufsteigender Reihenfolge und durch Kommas
               getrennt angegeben werden. Sie können eine oder mehrere,
               höchstens aber 40 Zahlen angeben.

          -a   entspricht der Tabulatorstoppliste 1,10,16,36,72

               (für Assembler, anwendbar bei einigen Großrechnern)

          -a2  entspricht der Tabulatorstoppliste 1,10,16,40,72

               (für Assembler, anwendbar bei einigen Großrechnern)

          -c   entspricht der Tabulatorstoppliste 1,8,12,16,20,55

               (für COBOL, normales Format)

          -c2  entspricht der Tabulatorstoppliste 1,6,10,14,49

               (für COBOL, kompaktes Format)

          -c3  entspricht der Tabulatorstoppliste

               1,6,10,14,18,22,26,30,34,38,42,46,50,54,58,62,67



Seite 2                      Reliant UNIX 5.44               Gedruckt 11/98

newform(1)                                                       newform(1)

               (für COBOL, kompaktes Format, mit mehr Tabulatorstopps als
               bei -c2)

          -f   entspricht der Tabulatorstoppliste 1,7,11,15,19,23

               (für FORTRAN)

          -p   entspricht der Tabulatorstoppliste

               1,5,9,13,17,21,25,29,33,37,41,45,49,53,57,61

               (für PL/1)

          -s   entspricht der Tabulatorstoppliste 1,10,55

               (für SNOBOL)

          -u   entspricht der Tabulatorstoppliste 1,12,20,44

               (für Assembler, anwendbar bei einigen Großrechnern)

          --   newform sucht die Tabulatorspezifikation in der ersten
               Zeile, die es von der Standardeingabe liest. Die Tabulator-
               spezifikation muß das folgende Format haben:

               <:ttabspec d:>

          --name
               newform sucht die Tabulatorspezifikation in der ersten Zeile
               der Datei name. Die Tabulatorspezifikation muß das folgende
               Format haben:

               <:ttabspec d:>

   Leerzeichen in Tabulatorzeichen umwandeln

     -o[tabspec]
          (o - output tab specification) Mit dieser Option können Sie Leer-
          zeichen in Tabulatorzeichen umwandeln. Mit Hilfe von tabspec
          definieren Sie eine Liste von Tabulatorstopps. Stehen unmittelbar
          vor einem dieser Tabulatorstopps ein oder mehrere Leerzeichen,
          dann wandelt newform diese Leerzeichenfolge in ein Tabulatorzei-
          chen um (siehe Beispiel 2).

          tabspec nicht angegeben:

          tabspec hat den Standardwert -8; d. h. newform nimmt Tabulator-
          stopps in den Spalten 1, 9, 17, 25 usw. an.






Seite 3                      Reliant UNIX 5.44               Gedruckt 11/98

newform(1)                                                       newform(1)

          tabspec angegeben:

          Für tabspec können Sie die gleichen Werte wie bei Option -i ange-
          ben. Geben Sie den Wert -0 an, dann wandelt newform keine Leer-
          zeichen in Tabulatorzeichen um.

   Tabulatorspezifikation ausgeben

     -f   (f - format line) newform gibt vor allen anderen Ausgabezeilen
          die Tabulatorspezifikation aus.

          Die Tabulatorspezifikation hat das folgende Format:

          <:ttabspec d:>

          Für tabspec gibt newform den Wert aus, den Sie im selben
          newform-Aufruf bei der letzten -o-Option angegeben haben. Haben
          Sie bei -o keinen Wert angegeben oder haben Sie überhaupt keine
          -o-Option angegeben, dann gibt newform für tabspec den Standard-
          wert -8 aus.

          Vorsicht:
               Wenn Sie newform mit der Option -f aufrufen und im selben
               Aufruf für die letzte -o-Option -o-- angegeben haben und
               wenn Sie vor dieser -o-Option -o-- oder -i-- angegeben
               haben, dann gibt newform eine falsche Tabulatorspezifikation
               aus.

               Beispiel: newform ... -i-- ... -o-- -f datei

   Erstes Feld ans Zeilenende setzen

     -s   (s - shear off) newform schneidet alle Zeichen der Eingabezeile
          bis zum ersten Tabulatorzeichen einschließlich ab.

          Werden nur 8 Zeichen oder weniger abgeschnitten (das erste Tabu-
          latorzeichen nicht mitgezählt), dann werden mit Ausnahme des
          ersten Tabulatorzeichens alle abgeschnittenen Zeichen an das Zei-
          lenende gesetzt.

          Werden mehr als 8 Zeichen abgeschnitten (das erste Tabulatorzei-
          chen nicht mitgezählt), dann wird das achte Zeichen durch ein *
          ersetzt; die darauffolgenden Zeichen werden gelöscht. Das erste
          Tabulatorzeichen wird in jedem Fall gelöscht.

          Zusammenwirken mit anderen Optionen:

          Wird die Option -s abgearbeitet, dann schneidet newform die Zei-
          chen am Beginn der Eingabezeile ab und speichert die abgeschnit-
          tenen Zeichen intern, bis alle restlichen Optionen auf die Einga-
          bezeile angewandt worden sind. Erst dann setzt newform die Zei-
          chen ans Ende der bearbeiteten Zeile.


Seite 4                      Reliant UNIX 5.44               Gedruckt 11/98

newform(1)                                                       newform(1)

          Vorsicht:
               Wenn Sie die Option -s angeben, dann erwartet newform, daß
               alle Eingabezeilen ein Tabulatorzeichen enthalten.

   Zeilen kürzen bzw. verlängern

     -l[n]
          (l - line length) Die effektive Zeilenlänge wird auf n Zeichen
          festgelegt. n ist eine ganze Zahl größer gleich 1.

          Die Option -l ist nur zusammen mit Option -b, -e, -p oder -a
          sinnvoll.

          n nicht angegeben:

          Die effektive Zeilenlänge wird auf 72 Zeichen festgelegt.

          -l[n] nicht angegeben:

          Die effektive Zeilenlänge beträgt standardmäßig 80 Zeichen.

          Vorsicht:
               Tabulator- und Rücksetzzeichen (tabs und backspaces) werden
               als jeweils ein Zeichen interpretiert werden; mit der Option
               -i können Sie die Tabulatorzeichen jedoch in Leerzeichen
               umwandeln.

     -b[n]
          (b - beginning of the line) Ist die Länge der Eingabezeile größer
          als die effektive Zeilenlänge (siehe Option -l), dann kürzt new-
          form die Zeile um die ersten n Zeichen.

          n ist eine ganze Zahl größer gleich 1.

          n nicht angegeben:

          newform kürzt die Zeile am Zeilenanfang gerade so weit, daß sie
          die effektive Zeilenlänge erreicht.

     -e[n]
          (e - end of the line) Ist die Länge der Eingabezeile größer als
          die effektive Zeilenlänge (siehe Option -l), dann kürzt newform
          die Zeile um die letzten n Zeichen.

          n ist eine ganze Zahl größer gleich 1.

          n nicht angegeben:

          newform kürzt die Zeile am Zeilenende gerade so weit, daß sie die
          effektive Zeilenlänge erreicht.




Seite 5                      Reliant UNIX 5.44               Gedruckt 11/98

newform(1)                                                       newform(1)

     -ck  (c - character) Als Füllzeichen wird k definiert. k ist ein
          beliebiges druckbares ASCII-Zeichen.

          Die Option -c ist nur zusammen mit Option -p oder -a sinnvoll.

          -c nicht angegeben:

          Standardmäßig ist das Leerzeichen das Füllzeichen.

     -p[n]
          (p - prefix) Ist die Länge der Eingabezeile kleiner als die
          effektive Zeilenlänge (siehe Option -l), dann stellt newform der
          Zeile n Füllzeichen (siehe Option -c) voran.

          n ist eine ganze Zahl größer gleich 1.

          n nicht angegeben:

          newform stellt der Eingabezeile gerade so viele Füllzeichen
          voran, daß sie die effektive Zeilenlänge erreicht.

     -a[n]
          (a - append) Ist die Länge der Eingabezeile kleiner als die
          effektive Zeilenlänge (siehe Option -l), dann fügt newform am
          Zeilenende n Füllzeichen an (siehe Option -c).

          n ist eine ganze Zahl größer gleich 1.

          n nicht angegeben:

          newform fügt am Ende der Eingabezeile gerade so viele Füllzeichen
          an, daß sie die effektive Zeilenlänge erreicht.

     datei
          Name der Textdatei, die neu formatiert werden soll.

          Sie können mehrere Dateien angeben. Die angegebenen Optionen gel-
          ten dann für alle Dateien.

          datei nicht angegeben:

          newform liest von der Standardeingabe.

FEHLERMELDUNGEN
     Alle hier beschriebenen Fehler führen zum Abbruch.

     not -s format

     Sie haben newform mit der Option -s aufgerufen, aber eine der Eingabe-
     zeilen enthielt kein Tabulatorzeichen.




Seite 6                      Reliant UNIX 5.44               Gedruckt 11/98

newform(1)                                                       newform(1)

     can't open datei

     Die Eingabedatei datei kann nicht geöffnet werden, da sie nicht exi-
     stiert oder Sie auf die Datei nicht zugreifen dürfen usw.

     internal line too long

     Eine Zeile enthält nach ihrer Erweiterung im internen Arbeitspuffer
     mehr als 512 Zeichen.

     tabspec in error

     Das Argument tabspec, das Sie der Option -i oder -o mitgegeben haben,
     hatte nicht das richtige Format.

     tabspec indirection illegal

     Sie haben newform mit der Option -i--, -o--, -i--datei oder -o--datei
     aufgerufen, und die Tabulatorspezifikation, die newform daraufhin von
     der Standardeingabe oder aus datei gelesen hat, enthielt wiederum ein
     tabspec in Form von -i--, -o--, -i--datei oder -o--datei. Dies ist
     nicht zulässig.

BEISPIELE
     Tabulatorzeichen in Leerzeichen umwandeln: Option -i

     Beispiel 1

     Die Datei datei hat folgenden Inhalt:

     rot <TAB> gruen

     Zwischen den Worten rot und gruen steht nur ein Tabulatorzeichen. Mit
     dem Kommando od können Sie den Dateiinhalt überprüfen - od macht auch
     das Tabulator- und das Neue-Zeile-Zeichen sichtbar:

     $ od -c datei
     0000000   r o t \t     g r u e n \n
     0000012

     0000012 gibt oktal die Anzahl der in datei enthaltenen Zeichen an.

     Vergleichen Sie die Ausgabe von cat und von newform -i:

     $ cat datei
     rot     gruen
     $ newform -i datei
     rot     gruen

     In beiden Fällen beginnt das Wort gruen auf Spalte 9. newform -i läßt
     den Dateiinhalt jedoch nur scheinbar unverändert. Das Kommando od
     zeigt, daß es das Tabulatorzeichen in 5 Leerzeichen umwandelt:


Seite 7                      Reliant UNIX 5.44               Gedruckt 11/98

newform(1)                                                       newform(1)

     $ newform -i datei | od -c
     0000000   r o t           g r u e n \n
     0000016

     Geben Sie der Option -i ein Argument tabspec mit. Beachten Sie: Zwi-
     schen -i und dem Wert für tabspec darf kein Leerzeichen stehen.

     $ newform -i-4 datei
     rot gruen

     Hier hat newform einen Tabulatorstopp in Spalte 5 angenommen; folglich
     beginnt das Wort gruen auf Spalte 5. Das Tabulatorzeichen wurde in nur
     ein einziges Leerzeichen umgewandelt.

     Definieren Sie eine Liste von Tabulatorstopps. Dazu legen Sie eine
     Datei an, die in einer Zeile mehrere Tabulatorzeichen enthält:

     $ cat > datei1
     rot <TAB> gruen <TAB> blau <TAB> gelb
     <CTRL-D>
     $ newform -i5,13,18 datei1
     rot gruen   blau gelb

     Hier hat newform Tabulatorstopps in den Spalten 5, 13 und 18 angenom-
     men. Folglich beginnt das Wort gruen auf Spalte 5, d. h. das erste
     Tabulatorzeichen wurde in 1 Leerzeichen umgewandelt; das Wort "blau"
     beginnt auf Spalte 13, d. h. das zweite Tabulatorzeichen wurde in 3
     Leerzeichen umgewandelt usw.

     Leerzeichen in Tabulatorzeichen umwandeln: Option -o

     Beispiel 2

     Die Datei datei hat folgenden Inhalt:

     rot                    gruen

     Zwischen den Worten rot und gruen stehen 5 Leerzeichen. Wandeln Sie
     die Leerzeichen in ein Tabulatorzeichen um:

     $ newform -o datei | od -c
     0000000   r o t \t     g r u e n \n
     0000012

     newform hat in Spalte 9 einen Tabulatorstopp angenommen und alle Leer-
     zeichen, die unmittelbar vor Spalte 9 standen, in 1 Tabulatorzeichen
     umgewandelt.







Seite 8                      Reliant UNIX 5.44               Gedruckt 11/98

newform(1)                                                       newform(1)

     Geben Sie nun für tabspec den Wert -6 an:

     $ newform -o-6 datei | od -c
     0000000   r o t \t         g r u e n \n
     0000014

     Hier hat newform alle Leerzeichen, die unmittelbar vor Spalte 7 stan-
     den, in 1 Tabulatorzeichen umgewandelt. Auf dieses Tabulatorzeichen
     folgen die restlichen zwei Leerzeichen.

     Zeilen kürzen und verlängern

     Beispiel 3

     Die Datei datei hat folgenden Inhalt:

     montag
     dienstag
     mittwoch
     donnerstag
     freitag
     samstag
     sonntag

     Alle Zeilen aus datei, die länger als 6 Zeichen sind, sollen rechts
     soweit gekürzt werden, bis sie gerade 6 Zeichen lang sind:

     $ newform -l6 -e datei
     montag
     dienst
     mittwo
     donner
     freita
     samsta
     sonnta

     Alle Zeilen aus datei sollen rechtsbündig formatiert werden; die Zei-
     len sollen auf Spalte 20 enden:

     $ newform -l20 -p datei
                montag
              dienstag
              mittwoch
            donnerstag
               freitag
               samstag
               sonntag

     Der folgende newform-Aufruf löscht die Folgenummern aus einem COBOL-
     Programm; die Folgenummern stehen in den Spalten 1-6.




Seite 9                      Reliant UNIX 5.44               Gedruckt 11/98

newform(1)                                                       newform(1)

     $ newform -l1 -b6 programm
        .
        .
        .

     Die Option -l1 ist notwendig, damit jede Zeile um 6 Zeichen gekürzt
     wird (siehe Beispiel 5).

     Zeilenabschnitte umordnen: Option -s

     Beispiel 4

     Die Datei datei hat folgenden Inhalt:

     Meier <TAB> Eduard
     Mueller <TAB> Hugo

     $ cat datei
     Meier   Eduard
     Mueller Hugo

     Sie möchten nun die Zeilen so umstrukturieren, daß zuerst der Vorname
     kommt und dann, nach einem Leerzeichen, der Nachname.

     $ newform -a1 -s datei
     Eduard Meier
     Hugo Mueller

     Zunächst (Option -a1) wurde am Ende der Zeilen ein Leerzeichen ange-
     fügt. Anschließend (Option -s) wurden der Nachname und das Tabulator-
     zeichen abgeschnitten und der Nachname hinten angefügt.

     In diesem Fall hätten Sie auch newform -s -a1 datei eingeben können;
     newform hätte dann zuerst Nachnamen und Tabulatorzeichen abgeschnit-
     ten, die Nachnamen intern gespeichert, ein Leerzeichen am Zeilenende
     angefügt und dann erst die Nachnamen angefügt (siehe Beispiel 6).

     Reihenfolge der Optionen und mehrfache Angabe derselben Option

     Beispiel 5

     Die Datei farben hat folgenden Inhalt:

     rot
     giftgruen
     gelb
     lilablassblau

     Kürzen Sie alle Zeilen, die länger als 4 Zeichen sind, am Ende um 2
     Zeichen:




Seite 10                     Reliant UNIX 5.44               Gedruckt 11/98

newform(1)                                                       newform(1)

     $ newform -l4 -e2 farben
     rot
     giftgru
     gelb
     lilablassbl

     Vertauschen Sie die beiden Optionen, so erhalten Sie ein anderes
     Ergebnis:

     $ newform -e2 -l4 farben
     rot
     giftgruen
     gelb
     lilablassblau

     Hier wird die effektive Zeilenlänge zunächst auf den Standardwert 80
     gesetzt; es werden also nur die Zeilen gekürzt, die länger als 80 Zei-
     chen sind - das ist hier keine einzige. Dann erst erhält die effektive
     Zeilenlänge den Wert 4; das hat aber keine Auswirkung mehr.

     Nun soll allen Zeilen der Datei farben, die höchstens 5 Zeichen ent-
     halten, ein Stern vorangestellt werden. Anschließend soll in allen
     Zeilen, die länger als 10 Zeichen sind, das letzte Zeichen abgeschnit-
     ten werden.

     $ newform -l5 -c* -p1 -l10 -e1 farben
     *rot
     giftgruen
     *gelb
     lilablassbla

     Beispiel 6

     Die Datei bestellung hat folgenden Inhalt:

     1000 <TAB> Meier <TAB> Frankfurt
      150 <TAB> Mueller <TAB> Muenchen
      750 <TAB> Huber <TAB> Augsburg
     2500 <TAB> Schmidt <TAB> Koeln <TAB> ***

     Die Zeilen der Datei bestellung sollen nun folgendermaßen umformatiert
     werden:

     Die Zahlen und das erste Tabulatorzeichen sollen abgeschnitten werden,
     so daß die Namen am Anfang stehen. Die übrigen Tabulatorzeichen sollen
     in Leerzeichen umgewandelt werden, und zwar soll newform alle 15 Spal-
     ten einen Tabulatorstopp annehmen (d. h. in den Spalten 16, 31, 46
     usw.). Anschließend sollen alle Zeilen bis Spalte 30 mit Leerzeichen
     aufgefüllt bzw. ab Spalte 31 abgeschnitten werden. Die abgeschnittenen
     Zahlen sollen ab Spalte 31 stehen.




Seite 11                     Reliant UNIX 5.44               Gedruckt 11/98

newform(1)                                                       newform(1)

     Dies leistet der folgende newform-Aufruf:

     $ newform -s -i-15 -l30 -a -e bestellung
     Meier          Frankfurt      1000
     Mueller        Muenchen        150
     Huber          Augsburg        750
     Schmidt        Koeln          2500

     Beachten Sie, daß die Optionen von links nach rechts abgearbeitet wer-
     den: Nachdem die Zahlen und das Tabulatorzeichen abgeschnitten wurden
     (Option -s), beginnen die Namen auf Spalte 1. Nach der Umwandlung der
     restlichen Tabulatorzeichen in Leerzeichen (Option -i-15) sind nur die
     ersten 3 Zeilen kürzer als 30 Zeichen und werden folglich mit Leerzei-
     chen aufgefüllt (Option -a); die letzte Zeile ist länger als 30 Zei-
     chen und wird deshalb am Ende gekürzt (Option -e). Erst jetzt werden
     die abgeschnittenen Zahlen ans Ende der Zeilen gesetzt (Option -s, 2.
     Teil).

SIEHE AUCH
     csplit(1), tabs(1), fspec(4).


































Seite 12                     Reliant UNIX 5.44               Gedruckt 11/98

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026