linux – 使用这个bash文件名提取技术?
发布时间:2021-01-24 14:47: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 2.6.x中计算线程的动态优先级?
- linux – 为什么我必须`wait()`用于子进程?
- 尽管在Linux内核模块中使用EXPORT_SYMBOL,如何防止“错误:
- Linux常用配置及硬件检测命令
- 在Linux上的Java / C应用程序的共享内存IPC的良好替代
- LINUX实战:Linux系统inode占满故障解决方法
- 我应该在/ var还是/ opt中安装Linux应用程序?
- 转载--How to Install VMware Tools on CentOS 6.3
- c – SYSV与Linux / GNU ELF格式
- linux-kernel – IO-APIC级别与PCI-MSI-X之间的差异