2010-05-04 6 views
7

У меня есть некоторые файлы в том же каталоге (в UNIX файловой системы), которая выглядит как:Получить имя файла перед расширением

a.txt.name 
b.xml.name 
c.properties.name 

a.txt.name2 
b.xml.name2 
c.properties.name2 

Как получить строку перед name или name2 части, используя какую-либо команду оболочки?

ie. a.txt, b.xml, c.properties часть?

ответ

9
$ basename a.txt.name .name 
a.txt 
+0

Хороший суффикс вариант. Благодаря! –

4
$ file="a.txt.name" 
$ file="${file%.*}" 
$ echo "$file" 
a.txt 
2

Если именовании всегда foo.bar.other, то это достаточно просто:

ls * | cut -d. -f1,2 
Смежные вопросы