我在同一目录(在UNIX文件系统中)有一些文件,如下所示:
a.txt.name
b.xml.name
c.properties.name
a.txt.name2
b.xml.name2
c.properties.name2
如何使用shell命令在name
或name2
部分之前获取字符串?
即。 a.txt
,b.xml
,c.properties
部分?
答案 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字符串操作函数。这个页面可以帮助你完成大部分工作: