떠들썩한 변수 내의 문자열 찾기 :우리가 수은 URL의 사용자 이름 찾기 위해 노력했다
tmp=${a#*//}
user=${tmp%%@*}
인가가 :
default = ssh://[email protected]//srv/hg/repo
항상 이름이 있다고 가정을, 내가 함께했다 한 줄로 이렇게하는 방법?
떠들썩한 변수 내의 문자열 찾기 :우리가 수은 URL의 사용자 이름 찾기 위해 노력했다
tmp=${a#*//}
user=${tmp%%@*}
인가가 :
default = ssh://[email protected]//srv/hg/repo
항상 이름이 있다고 가정을, 내가 함께했다 한 줄로 이렇게하는 방법?
bash 자체에는 포함되지 않습니다. sed와 같은 외부 도구에 위임해야합니다.
하지 수은을 잘 알고 있지만 URL을 사용하여, 당신은 두 개의 파이프
echo 'ssh://[email protected]/srv/hg/repo' |grep -E --only-matching '\[email protected]' |cut --delimiter=\@ -f 1
아마 아닐 가장 효율적인 방법을하지만, 작동 할 수 있습니다.
당신은 꽤 많은 문장이 필요하거나 외부 도구를 호출해야합니다. 나는 sed가 이것을 위해 최선이라고 생각합니다.
url='default = ssh://[email protected]//srv/hg/repo'
당신은 할 수 있습니다 :
이[[ $url =~ //([^@]*)@ ]]
그런 다음 사용자 이름이 여기에 있습니다 :
echo ${BASH_REMATCH[1]}
이 작품
sed -r -e 's|.*://(.*)@.*|\1|' <<< "$default"
가정 당신의 문자열이 같은 변수에 Bash 버전 3.2 이상.
개행이 아닌 두 연산 사이에 세미콜론을 사용합니까? –