Я хочу, чтобы мои Баш быстрые пути укоротить:Как сократить путь между частями // в Баш
~/workspace/project/my-project
# Should be
~/w/p/my-project
Это может быть достигнуто за счет только укорачивание части строки пути между // до всего первого символа ,
Есть ли способ сделать это, например, в sed?
редактировать:
мысли кто-то смотрит в это может найти то, что я заканчивал полезно, так что я его редактирования здесь.
.bashrc:
dir_chomp() {
pwd | sed "s|^$HOME|~|" 2> /dev/null | sed 's:\(\.\?[^/]\)[^/]*/:\1/:g'
}
parse_git_branch() {
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'
}
export PS1="\[\033[32m\]\$(dir_chomp)\[\033[33m\]\$(parse_git_branch)\[\033[00m\] $ "
стремительные примеры (окраска не показывает):
~/w/e/coolstuff (master) $
~/.c/A/Cache $
Я чувствую, что это неизбежно, потому что это 'parse_git_branch() { git branch 2>/dev/null | sed -e '/^[^ *]/d' -e 's/* \ (. * \)/(\ 1) /' } 'отлично работает в этом приглашении:' export PS1 = "\ [\ 033 [32m \] \ w \ [\ 033 [33m \] \ $ (parse_git_branch) \ [\ 033 [00m \] $ "' – RusinaRange
@lurker: Однако, если вы установите 'PS1 = \ $ (parse_git_branch)', тогда 'PS1' * * повторно оценивается каждый раз. – rici
Вы должны посмотреть сообщение [this] (http://stackoverflow.com/questions/3497885/code-challenge-bash-prompt-path-shortener). – drewyupdrew