use*_*822 15 linux script bash file-extension filenames
我正在尝试修正我的第一个 bash 脚本,并且有一次文件名作为 .bash 传递给脚本$1
。我需要提取没有扩展名的文件名。
目前,我假设所有扩展名都是三个字母,因此我删除了最后 4 个字符以获取文件名:
a="${1:0:-4}"
Run Code Online (Sandbox Code Playgroud)
但我需要能够使用超过三个字符的扩展,就像%~n1
在 Windows 中一样。
有没有办法从参数中提取没有扩展名的文件名?
gar*_*ohn 31
在 bash 中执行此操作的通常方法是使用参数扩展。(请参阅bash手册页并搜索“参数扩展”。)
a=${1%.*}
Run Code Online (Sandbox Code Playgroud)
的%
表示一切匹配以下的图案(.*
从右边),使用最短的匹配可能的,要被从参数中删除$1
。在这种情况下,表达式不需要双引号 (")。
Ste*_*nny 17
如果您知道扩展名,则可以使用basename
$ basename /home/jsmith/base.wiki .wiki
base
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
44733 次 |
最近记录: |