Как извлечь второй элемент из пути? [дубликат]

El primer endifocurre antes que el primero Delete, por lo que edse 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 vimpreguntaría "Rango hacia atrás dado, OK para intercambiar (y/ norte )?" al dar el comando de edición :/Delete/,/endif/p.

sedno 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 ).

1
10.10.2018, 15:41
2 ответа

Если ваш скрипт bash/dash/ksh/zsh, вам не нужны никакие внешние инструменты, подстановка параметров может дать вам ответ:

path=/sample/xyz/logs/test.logs
path=${path#/*/}
echo ${path%%/*}
  • #удаляет слева.
  • %удаляет справа.
  • удвоение символа делает сопоставление жадным, т. е. оно соответствует максимальному количеству совпадений.
1
27.01.2020, 23:31

Если вам всегда нужна вторая часть пути, попробуйте это

echo "/sample/xyz/logs/test.logs" | awk -F/ '{print $3}'
0
27.01.2020, 23:31

Теги

Похожие вопросы