bash: 중간점 이후 문자열 일부만 추출

bash: 중간점 이후 문자열 일부만 추출

다음과 같은 문자열이 있다고 가정해 보겠습니다.

="/home/Rob/.SpaceVim"

점 뒤의 문자열을 추출하고 싶습니다. 어떻게 해야 하나요?

$마지막 문자를 나타내는 데에도 사용되며 \문자열 리터럴로 문자를 만드는 데 사용할 수 있다는 것을 알고 있습니다 . 그래서 비슷한 것을 시도했지만 awk '\.$'성공하지 못했습니다.

답변1

가능한:

echo "/home/Rob/.SpaceVim" | grep -o "\..*$"

또는

echo "/home/Rob/.SpaceVim" | sed 's;[^.]*;;'

점 및 GNU 없음grep

echo "/home/Rob/.SpaceVim" | grep -Po "(?<=\.).*$"

또는sed

echo "/home/Rob/.SpaceVim" | sed 's;^.*\.;;'

포함할 수도 있습니다.cut

echo "/home/Rob/.SpaceVim" | cut -d'.' -f2-

(점을 포함하지 않거나 여러 점을 포함하는 선 사이의 동작에 차이가 있지만 이 경우 수행할 작업을 지정하지 않았습니다.)

답변2

읽다 man bash.

a="/home/Rob/.SpaceVim"
echo ${a##.*/}

관련 정보