Как вырезать последнее поле из строки оболочки Как вырезать последнее поле в этой строке оболочки LINE="/string/to/cut.txt" Итак, строка будет выглядеть так: LINE="/string/to/" Спасибо заранее! Ответ 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 '.*/' тоже работает.
Ответ 1 Я думаю, вы могли бы использовать команду "dirname". Требуется ввести путь к файлу, удалить часть имени файла и вернуть путь. Например: $ dirname "/string/to/cut.txt" /string/to
Ответ 3 Это будет работать в современных версиях Bourne, таких как Dash, BusyBox ash и т.д., а также потомки, такие как Bash, оболочка Korn и оболочка Z. LINE="/string/to/cut.txt" LINE=${LINE%/*} или сохранить последнюю косую черту: LINE=${LINE%/*}/