Operacje na łancuchach tekstowych

Funkcja automatycznej zmiany nazw plików jest jedną z najczęściej wykorzytywanych funkcji powłoki, wiele osób do prostej operacji używa programów zewnętrznych (np polecenia basename) nie zdając sobie sprawy z tego, że powłoka Bash dostarcza w miarę wygodnego narzedzia do wykonania tych czynności.

By mieć krótki manual zawsze pod ręką i się nie zastanawiać czy na pewno jest dobrze poniżej zamieszczam skrypt do sprawdzenia :)

#!/bin/bash
PATH2=/usr/src/linux
FILE=archive.tar.gz
PATHFILE=/home/johny/Desktop/ff.zip
echo '## THE PATH'
echo $PATH2 '=>'  ${PATH2%/*}           # rm last / or get parent
echo '## FILE'
echo ${FILE} '=>' ${FILE%%.*}           # name without extension
echo ${FILE} '=>' ${FILE##*.}           # only last extesion
echo ${FILE} '=>' ${FILE#*.}            # full extension
echo '## PATHFILE'
echo $PATHFILE '=>' ${PATHFILE%/*}
echo ${PATHFILE} '=>' ${PATHFILE##*.}
echo ${PATHFILE} '=>' ${PATHFILE#*.}
> ## THE PATH
> /usr/src/linux => /usr/src
> ## FILE
> archive.tar.gz => archive
> archive.tar.gz => gz
> archive.tar.gz => tar.gz
> ## PATHFILE
> /home/johny/Desktop/ff.zip => /home/johny/Desktop
> /home/johny/Desktop/ff.zip => zip
> /home/johny/Desktop/ff.zip => zip