Получить имя файла перед расширением - PullRequest
7 голосов
/ 04 мая 2010

У меня есть несколько файлов в той же директории (в файловой системе UNIX), которая выглядит следующим образом:

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

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

Как получить строку перед частью name или name2 с помощью какой-либо команды оболочки?

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

Ответы [ 4 ]

9 голосов
/ 04 мая 2010
$ basename a.txt.name .name
a.txt
4 голосов
/ 04 мая 2010
$ file="a.txt.name"
$ file="${file%.*}"
$ echo "$file"
a.txt
2 голосов
/ 04 мая 2010

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

ls * | cut -d. -f1,2
1 голос
/ 04 мая 2010

Взгляните на функции манипуляции со строкой bash. Эта страница поможет вам пройти большую часть пути:

http://tldp.org/LDP/abs/html/string-manipulation.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...