마지막 구분 기호에서 문자열 자르기

마지막 구분 기호에서 문자열 자르기

나는 이와 같은 파일 이름을 가지고 a.b.c.txt있으며 문자열을 다음으로 분할하고 싶습니다.

string1=a.b.c
string2=txt

기본적으로 파일 이름과 확장자를 분할하고 싶습니다. 사용했지만 와 cut로 나뉩니다 . 마지막 구분 기호의 문자열을 자르고 싶습니다.a,b,ctxt

누구든지 도와줄 수 있나요?

답변1

 #For Filename
 echo "a.b.c.txt" | rev | cut -d"." -f2-  | rev
 #For extension
 echo "a.b.c.txt" | rev | cut -d"." -f1  | rev

답변2

이를 수행하는 데는 많은 도구가 있습니다.

당신이 사용하는대로 cut:

$ string1="$(cut -d. -f1-3 <<<'a.b.c.txt')"
$ string2="$(cut -d. -f4 <<<'a.b.c.txt')"
$ echo "$string1"
a.b.c
$ echo "$string2"
txt

매개변수 확장을 사용하겠습니다(셸에서 지원하는 경우).

$ name='a.b.c.txt'
$ string1="${name%.*}"
$ string2="${name##*.}"
$ echo "$string1"
a.b.c
$ echo "$string2"
txt

답변3

echo "a.b.c.txt" | cut -d. -f1-3

cut이 명령은 .4개의 요소( a, b, c, txt)를 분리하여 제공합니다. 위 명령은 요소 1~3(포함)을 인쇄합니다.

또는:

echo "a.b.c.txt" | cut -d -f-3

위 명령은 요소 1~3(포함)을 인쇄합니다.

관련 정보