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

Скажем, есть разные файлы,

script.sh text.txt pic_1.png 

или файлы без расширения – «привет». Как вы можете извлечь последний символ имени базового файла? т.е.

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

Есть ли простой способ сделать это?

2 Solutions collect form web for “Поиск последнего символа имени базового файла”

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

 name_no_ext=${file%.*} 

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

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

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

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 .

  • Вложенный сценарий в сценарии bash
  • Как изменить содержимое конкретной строки в файле с помощью сценариев оболочки, когда текст в этой строке повторяется много раз в других строках
  • заставить сценарий оболочки запускаться как второй пользователь
  • итерации по каталогу, проверьте, являются ли элементы файлами или каталогами
  • получение неожиданной ошибки EOF
  • XOR переменной оболочки и двоичный файл
  • Получение количества строк и сохранение в результирующем наборе
  • Создать список папок с совпадающим (но не идентичным) концом
  • Как получить случайную перетасованную последовательность на основе индикатора интенсивности тасования?
  • Поиск строки в выводе команды
  • В чем смысл $ * в сценарии оболочки?
  • Interesting Posts

    Как получить последние пять рабочих дней в сценарии оболочки Unix, используя цикл `for`?

    Не удалось обновить или установить с помощью apt-get

    Является ли поврежденное дерево зависимостей apt-get?

    определить фактическое использование памяти несколькими процессами, которые разделяют большой сегмент памяти

    Конкретный пользовательский SSH-RSA с корневым доступом (через AWS EC2)

    Производить команды произвольно

    RHEL6 + Ошибка: сжатие xz недоступно

    как заставить интерфейс tun / tap войти в состояние RUNNING

    Вносить изменения в busybox / initramfs, которые являются постоянными?

    Изменение сочетания клавиш префикса tmux для быстрого сочетания клавиш

    Вывод звука с разных мониторов на различные аудиоустройства

    Я перепутал свои системные часы в Arch Linux

    Где файл журнала бродяг?

    Как получить gnome для запуска / etc / gdm / PostSession / Default при использовании XRDP w / VNC

    Настройка прокси-сервера Nginx

    Linux и Unix - лучшая ОС в мире.