Successivo: , Precedente: , Su: Esempi   [Contenuti][Indice]


4.5 Invertire i caratteri delle righe

Questo script può essere usato per invertire la posizione dei caratteri nelle righe. La tecnica consiste nel muovere due caratteri alla volta, per cui è più veloce di altre implementazioni più intuitive.

Si noti il comando tx prima della definizione dell’etichetta. Spesso si rende necessario per reimpostare il flag che è testato dal comando t.

I lettori fantasiosi troveranno come usare questo script. Un esempio è l’inversione dell’output di banner.8

#!/usr/bin/sed -f

/../! b

# Inverte una riga.  Inizia inserendo una riga fra due newline
s/^.*$/\
&\
/
# Sposta il primo carattere alla fine.  La regexp cerca corrispondenze
# fino a quando trova zero o uno caratteri tra i marcatori
tx
:x
s/\(\n.\)\(.*\)\(.\n\)/\3\2\1/
tx
# Rimuove i marcatori newline
s/\n//g

Note a piè di pagina

(8)

Richiede un altro script per riempire l’output di banner; per esempio

#! /bin/sh

banner -w $1 $2 $3 $4 |
  sed -e :a -e '/^.\{0,'$1'\}$/ { s/$/ /; ba; }' |
  ~/sedscripts/reverseline.sed