LINUX.ORG.RU

str="file.xxx.yyy.tar.gz"
str=`echo $str | sed -e 's/\..*$//'`

Не зацикливайся на встроенных функиях bash-a, в unix-е принято знать и пользовать кучу
разных внешних тулов, как мне кажеться... В общем см. grep, sed, awk.

tarle
()

str="file.tar.gz" basename $str .tar.gz

anonymous
()

>Пусть в переменная str="file.tar.gz". Как получить часть этой строки до первой точки, т.е. "file"?

prefix=`echo $str | cut -f 1 -d .`
echo  $prefix

man cut

sS ★★★★★
()
Ответ на: комментарий от tarle

>str="file.xxx.yyy.tar.gz"
>str=`echo $str | sed -e 's/\..*$//'`

Однако:
str="строка   с   многими  пробелами.работает.криво"
str=`echo $str | sed -e 's/\..*$//'`
test str != "строка   с   многими  пробелами"


Вот так вот;-)

str="строка   с   многими  пробелами.не.работает"
IFS=.
for i in $str ; do str=$i ; break ; done

DonkeyHot ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.