LINUX.ORG.RU

Сообщения mmilky

 

Вывод частей имени файла

Есть скрипт, [flag] [filename]
-n - имя файла без расширения
-f - имя файла с расширением
-e - расширение
-d - имя директории, которой принадлежит файл (если существует)
-p - если имя файла начинается с . или .. , то считаем, что эти символы не входят в имя файла.

#!/bin/bash
eval LAST=\$$#
FILE=$LAST
if [ $# -lt 1 -o $# -gt 3 ]
then echo "$0: ARG error " >&2
     echo "Use: $0 [flags] [file]" >&2
     exit 0
fi
for ARG in $@
do
        case $ARG in
              -n)NAME=${FILE%.*} ;;
              -f)NAME=$FILE ;;
              -e)if [ `echo $FILE | grep -c "\."` -gt 0 ]
                 then
                        NAME=${FILE##*.}
                 else
                        echo ""
                 fi ;;
              -d)NAME=`dirname $FILE` ;;
              -p)if [ `echo $FILE | cut -c2` = "." ]
                 then
                        NAME=${NAME#..}
                 else
                        NAME=${NAME#.}
                 fi ;;
        esac

done

echo $NAME
echo

Работает только для файлов из каталога, где находиться скрипт. Не знаю как организовать для файлов из других директорий, ../..filename.sh. Не хотелось бы ляпать по несколько условий if в ключи.

 

mmilky
()

Удалить последнее слово в строке awk, sed

Подскажите плз как удалить $NF в awk или с помощью sed

 ,

mmilky
()

RSS подписка на новые темы