기본 파일 이름의 마지막 문자 찾기

기본 파일 이름의 마지막 문자 찾기

다른 파일이 있다고 가정하면,

script.sh
text.txt
pic_1.png

또는 확장자가 없는 파일 - 'hello'. 기본 파일 이름의 마지막 문자를 추출하는 방법은 무엇입니까? 즉,

script. sh - t
text.txt -  t
pic_1.png - p
hello - o

이를 수행하는 쉬운 방법이 있습니까?

답변1

먼저 확장 프로그램(있는 경우)을 제거합니다.

name_no_ext=${file%.*}  

그런 다음 마지막 문자를 얻습니다.

char=${name_no_ext: -1} #note the space after colon  

Bash의 문자열 조작에 대해 더 자세히 알고 싶다면 Parameter ExpansionBash 매뉴얼 섹션을 참조하세요.

답변2

앞쪽:

for w in script.sh text.txt pic_1.png; do
  w=${w%.*}
  all_but_last_char=${w%?}
  w=${w##"$all_but_last_char"}
  printf '%s\n' "$w"
done

와 같은 일부 셸에서는 유니코드 문자와 함께 작동하지 않습니다 mksh.dash

관련 정보