Подтвердить что ты не робот

Как вырезать последнее поле из строки оболочки

Как вырезать последнее поле в этой строке оболочки

LINE="/string/to/cut.txt"

Итак, строка будет выглядеть так:

LINE="/string/to/"

Спасибо заранее!

4b9b3361

Ответ 1

Я думаю, вы могли бы использовать команду "dirname". Требуется ввести путь к файлу, удалить часть имени файла и вернуть путь. Например:

$ dirname "/string/to/cut.txt"
/string/to

Ответ 2

Для чего стоит решение cut:

NEW_LINE="`echo "$LINE" | rev | cut -d/ -f2- | rev`/"

Ответ 3

Это будет работать в современных версиях Bourne, таких как Dash, BusyBox ash и т.д., а также потомки, такие как Bash, оболочка Korn и оболочка Z.

LINE="/string/to/cut.txt"
LINE=${LINE%/*}

или сохранить последнюю косую черту:

LINE=${LINE%/*}/

Ответ 4

echo "/string/to/cut.txt" | awk -F'/' '{for (i=1; i<NF; i++) printf("%s/", $i)}'

Ответ 5

echo $LINE | grep -o '.*/' тоже работает.