어떻게 물고기 껍질에서 문자열 조작을 할 수 있습니까? 이름을 넣을거야. $branch 변하기

Fish shell에서 bash 스타일의 문자열 조작을 어떻게 할 수 있습니까?

특히 bash에서

read branch < ".git/HEAD"
branch=${branch#ref: refs/heads/}

에 지사 이름을 넣을거야. $branch 변하기 쉬운.

나는 물고기 껍질에서 어떻게 똑같이 할 수 있습니까?

나는 물고기의 문서를 훑어 보았지만 아무것도 발견하지 못했습니다.



답변

물고기 껍데기에는 이제 string 내장 명령어.

쓰다 string 대신에 sed 귀하의 경우 :

set branch (string replace 'ref: refs/heads/' '' <.git/HEAD)

주어진 인수 나 표준 입력에서 작동 할 수 있습니다.

더 많은 것들이 있습니다. string 할수있다. 로부터 문자열 명령 문서 :

Synopsis

string length [(-q | --quiet)] [STRING...]
string sub [(-s | --start) START] [(-l | --length) LENGTH] [(-q | --quiet)]
           [STRING...]
string split [(-m | --max) MAX] [(-r | --right)] [(-q | --quiet)] SEP
             [STRING...]
string join [(-q | --quiet)] SEP [STRING...]
string trim [(-l | --left)] [(-r | --right)] [(-c | --chars CHARS)]
            [(-q | --quiet)] [STRING...]
string escape [(-n | --no-quoted)] [STRING...]
string match [(-a | --all)] [(-i | --ignore-case)] [(-r | --regex)]
             [(-n | --index)] [(-q | --quiet)] [(-v | --invert)] PATTERN [STRING...]
string replace [(-a | --all)] [(-i | --ignore-case)] [(-r | --regex)]
               [(-q | --quiet)] PATTERN REPLACEMENT [STRING...]

답변

생선은 모두 미니멀리즘에 관한 것입니다. 일을 쉽게하는 일반적인 유틸리티가있는 경우 물고기에 없습니다. 그래서, 당신이 말하는 것처럼, sed :

set branch (sed 's#^ref: refs/heads/##' .git/HEAD)