Поиск последнего символа в имени базового файла

for i in `seq 10`; do command $i; done
2
22.11.2016, 05:35
2 ответа

POSIXLY:

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

Обратите внимание, что он не работает с символами Unicode в некоторых оболочках, таких как mksh , dash .

2
27.01.2020, 21:56

Прежде всего, удалите расширение, если оно есть:

name_no_ext=${file%.*}  

тогда вы получите последний символ:

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

Если вы хотите узнать больше о манипуляциях со строками в bash, перейдите к разделу Расширение параметров руководства bash.

3
27.01.2020, 21:56

Теги

Похожие вопросы