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)