다른 파일이 있다고 가정하면,
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 Expansion
Bash 매뉴얼 섹션을 참조하세요.
답변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