LINUX.ORG.RU

cut заменить sed

 


0

1

подскажите рецепт. никак не могу подружиться с sed

echo «/mnt/backup/20191213-15h21/vg_main/lv_var» | cut -d"/" -f5,6

аналог на sed, чтобы на выходе было (не зависимо от вложенности папок)

vg_main/lv_var

Почему именно sed? С awk удобнее:

awk -F/ 'OFS="/" {print $(NF-1), $NF}'
Yorween
()

echo "/mnt/backup/20191213-15h21/vg_main/lv_var" | sed 's|.*/\(.*/.*\)|\1|'

pinus_nigra
()

Если путь надо обрезать один раз, то можно это сделать так:

$ P="/mnt/backup/20191213-15h21/vg_main/lv_var"
$ echo "$(basename "$(dirname "$P")")/$(basename "$P")"
vg_main/lv_var

или так

$ [[ $P =~ [^/]+/[^/]+$ ]]
$ echo "${BASH_REMATCH[0]}"
vg_main/lv_var

ну а если путей много, то лучше sed или awk

legolegs ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.