Intereting Posts
Как предотвратить xbindkeys от потребления клавиатурных сообщений? Unix, чтобы указать, сколько оперативной памяти было использовано во время выполнения программы? Можно ли настроить FS-Cache для кэширования полного файла при чтении? Последовательность прерываний CTRL + C не работает для пользователя после включения Xinerama (в графической карте AMD с двумя головками) системная графика зависает Локальная доставка по электронной почте Fedora Как я могу настроить рабочий стол Linux на более отзывчивый? идентифицировать файлы с не-ASCII или непечатаемыми символами в имени файла Инструменты, которые перечисляют прототипы в .so-библиотеке Как исключить скрытые файлы в рекурсивном chmod? Если у меня есть два жестких диска, может ли жесткий диск 1 быть / dev / sda на одной загрузке, будучи / dev / sdb на другой загрузке? Как создать несколько устройств в подкаталоге / dev / (драйвер ядра) sigint не распространяется на фоновый дочерний процесс Анализатор журналов Syslog arecord записывать то, что играет на динамиках

`pwd`, но опустить первые n каталогов

pwd дает полный путь к текущему каталогу, например:

 /first/second/third/anotherdir/thefinaldirectory 

Как я могу опустить первый n, скажем, три каталога, так что только

 /anotherdir/thefinaldirectory 

возвращается?

Думаю, это должно быть возможно с sed ?

У Bash есть встроенные строковые манипуляции:

 echo "/${PWD#/*/*/*/}" 

Вы можете использовать cut для этого, например:

 pwd | cut -d/ -f 4- 

prints разбивает вывод pwd на / и печатает с четвертого поля до конца.

В вашем случае это будет:

 echo "/first/second/third/anotherdir/thefinaldirectory" | cut -d/ -f 5- 

С любым POSIX sed :

 pwd | sed 's,\(/[^/]*\)\{3\},,' 

или:

 pwd | sed -E 's,(/[^/]*){3},,' 

-E работает с GNU и BSD sed и станет стандартом в ближайшем будущем .