获取扩展名之前的文件名

时间:2010-05-04 16:38:45

标签: linux bash unix shell

我在同一目录(在UNIX文件系统中)有一些文件,如下所示:

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

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

如何使用shell命令在namename2部分之前获取字符串?

即。 a.txtb.xmlc.properties部分?

4 个答案:

答案 0 :(得分:9)

$ basename a.txt.name .name
a.txt

答案 1 :(得分:4)

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

答案 2 :(得分:2)

如果命名约定总是 foo.bar.other ,那么这很简单:

ls * | cut -d. -f1,2

答案 3 :(得分:1)

看一下bash字符串操作函数。这个页面可以帮助你完成大部分工作:

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