📅  最后修改于: 2023-12-03 15:07:15.419000             🧑  作者: Mango
有时候我们需要在操作文件时删除文件的扩展名,这在一些脚本中比较常见。在bash的Shell中,我们可以使用一些命令来实现。
basename命令可以用来获取文件名,我们可以将文件名和扩展名分开处理。可以使用如下命令删除文件的扩展名。
$ basename /path/to/file.txt .txt
上面的命令会输出file
,也就是去掉了.txt
扩展名的文件名。如果文件名中本身就没有扩展名,那么这个命令就不起作用。
bash中还有一个${parameter%word}的参数替换语法,可以用来删除字符串中符合条件的结尾部分。我们可以使用这个语法来删除文件扩展名。
$ file=/path/to/file.txt
$ echo ${file%.txt}
上面的命令输出/path/to/file
,也就是去掉了.txt
扩展名的文件名。这种方法更加通用,适用于任何字符串,并且即使没有扩展名也可以正常工作。
以上就是在bash中删除文件扩展名的两种方法,分别使用了basename命令和${parameter%word}参数替换。两种方法都可以实现我们的目标,具体使用哪一种取决于实际情况。