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 ).
Если ваш скрипт bash/dash/ksh/zsh, вам не нужны никакие внешние инструменты, подстановка параметров может дать вам ответ:
path=/sample/xyz/logs/test.logs
path=${path#/*/}
echo ${path%%/*}
#
удаляет слева. %
удаляет справа. Если вам всегда нужна вторая часть пути, попробуйте это
echo "/sample/xyz/logs/test.logs" | awk -F/ '{print $3}'