我想提取文件名(根)从一个文件与特定的扩展名(.datt)。这个文件是我的目录中唯一的一个文件,但可以更改其根名称,但扩展名保持不变;因此我需要使用一个“通配符”来捕获名称。下面是我的小脚本,它错误地输出了所有文件。感谢你的帮助。
# Target file in the folder >> test.datt
myfile=*.datt
echo $myfile
echo
root="${myfile%.datt}"
echo $root
我的输出
test.datt
temp test.datt testroot
预期产量
test
1条答案
按热度按时间rbl8hiat1#
试试这个Shellcheck-clean代码:
echo $myfile
等价于echo *.datt
,$root
的值(文字)为*
,echo $root
等价于echo *
。myfiles=( *.datt )
,数组myfiles
中填充了与*.datt
匹配的文件列表(预期正好是一个)。