O Bash tem alguma manipulação interna de strings:
echo "/${PWD#/*/*/*/}"
pwd
fornece o caminho completo do diretório atual, por exemplo:
/first/second/third/anotherdir/thefinaldirectory
Como posso omitir o primeiro n, digamos três diretórios, para que apenas
/anotherdir/thefinaldirectory
é retornado?
Eu acho que isso deve ser possível com sed
?
O Bash tem alguma manipulação interna de strings:
echo "/${PWD#/*/*/*/}"
Você pode usar cut
para isso, por exemplo:
pwd | cut -d/ -f 4-
impressões divide a saída de pwd
por /
e imprime do quarto campo até o fim.
No seu caso, isso seria:
echo "/first/second/third/anotherdir/thefinaldirectory" | cut -d/ -f 5-
Com qualquer POSIX sed
:
pwd | sed 's,\(/[^/]*\)\{3\},,'
ou:
pwd | sed -E 's,(/[^/]*){3},,'
-E
funciona com o GNU e o BSD sed, e se tornará padrão no futuro próximo .
Tags bash text-processing sed