linux – 使用这个bash文件名提取技术?
发布时间:2020-05-23 03:16:01 所属栏目:Linux 来源:互联网
导读:我有一部分bash脚本正在获得一个文件名,而不是扩展名,但是我正在想知道这里真正发生了什么.什么是“%%”?有人可以详细说明bash在幕后做什么吗?这种技术如何在一般的基础上使用? #!/bin/bashfor src in *.tif do txt=${src%%.*} tesseract ${src} ${txt} do
|
我有一部分bash脚本正在获得一个文件名,而不是扩展名,但是我正在想知道这里真正发生了什么.什么是“%%”?有人可以详细说明bash在幕后做什么吗?这种技术如何在一般的基础上使用? #!/bin/bash
for src in *.tif
do
txt=${src%%.*}
tesseract ${src} ${txt}
done
解决方法它删除文件扩展名(这里:.tif),示例:$for A in test.py test.sh test.xml test.xsl; do echo "$A: ${A%%.*}"; done
test.py: test
test.sh: test
test.xml: test
test.xsl: test
从bash手册: ${parameter%%word}
The word is expanded to produce a pattern just as in pathname expansion. If the
pattern matches a trailing portion of the expanded value of parameter,then the
result of the expansion is the expanded value of parameter with the shortest
matching pattern (the ``%'' case) or the longest matching pattern (the ``%%''
case) deleted. If parameter is @ or *,the pattern removal operation is applied
to each positional parameter in turn,and the expansion is the resultant list.
If parameter is an array variable subscripted with @ or *,the pattern removal
operation is applied to each member of the array in turn,and the expansion is
the resultant list. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 哪个适合linux? GNU make vs cmake vs codeblocks vs qmak
- debian – 在LVM / DRBD调整大小后,df报告的信息不正确
- linux – 如何减小KVM虚拟机磁盘映像的大小
- linux – su和sudo在shell脚本中
- linux – IO等等导致如此大的减速(EXT4 JDB2在99%IO)在Mys
- linux – 在64位机器上运行valgrind 32位二进制文件
- Linux系统调用,libc,VDSO和实现解析
- linux – 如何使用Nagios监控Windows主机?
- LINUX实操:Ubuntu下U盘只读文件系统,图标上锁,提示无法修
- 如何允许用户在linux上将文件传输给其他用户
