Вы можете использовать команду info
, чтобы узнать больше деталей о любой команде в coreutils.
Вот часть команды info ls
, объясняющая опцию -l
:
`-l'
`--format=long'
`--format=verbose'
In addition to the name of each file, print the file type, file
mode bits, number of hard links, owner name, group name, size, and
timestamp (*note Formatting file timestamps::), normally the
modification time. Print question marks for information that
cannot be determined.
........
El primer endif
ocurre antes que el primero Delete
, por lo que ed
se confunde acerca de que el rango se especifica "al revés".
Primero querrá encontrar la primera aparición de Delete
, y luego aplicar el comando desde esa línea hasta la siguienteendif
:
1,/Delete/
.,/endif/p
El primer comando colocará el cursor en la primera línea del archivo que contiene la palabra Delete
, y el segundo comando imprimirá las líneas desde esa línea hasta la siguiente línea que contiene la palabra endif
.
Si tuviera que dar el mismo comando en vi
, se quejaría con "La segunda dirección es más pequeña que la primera", y vim
preguntaría "Rango hacia atrás dado, OK para intercambiar (y/ norte )?" al dar el comando de edición :/Delete/,/endif/p
.
sed
no tendría ningún problema ya que busca la primera dirección antes de comenzar a buscar la segunda dirección (ya que es un editor de flujo ).
Necesidad /startrange/,/endrange/d
. Ejemplo
$ cat inp
foo
Delete
these lines
endif
bar
$ ed inp
33
/Delete/,/endif/d
w
8
q
$ cat inp
foo
bar
$
Solo usaríased
:
$ sed -i '/Delete/,/endif/d' inp
$