![]() |
1
469
下面介绍如何使用bash中的和%操作符。
例子:
文档可在
Bash manual
. 寻找
|
![]() |
2
183
查看basename命令:
|
![]() |
3
33
纯bash,在两个单独的操作中完成:
|
![]() |
4
15
我使用basename实现了以下目标:
这不需要预先知道文件扩展名,即使文件名中有点(在扩展名前面),也能正常工作;它确实需要程序
|
![]() |
5
12
纯巴什方式:
这个功能在man bash上的“参数扩展”下进行了解释。非bash方式有很多:awk、perl、sed等等。 编辑:使用文件中的点 后缀 不需要知道后缀(扩展名),但是 不存在 在中使用点 名称 本身。 |
![]() |
6
7
basename和dirname函数是您所追求的:
输出:
|
![]() |
7
3
|
![]() |
8
3
使用
我相信,各种正则表达式建议不适用于包含多个“”的文件名。 下面似乎是处理双点。哦,还有文件名包含一个“/”本身(只是为了好玩) 用帕斯卡的话说,“对不起,这个剧本太长了。我没时间把它缩短了”
|
![]() |
9
3
除了 POSIX conformant syntax 用于 this answer ,
如在
GNU
结果相同。区别和优势在于
甚至可以通过使用
读取数组:
|
![]() |
10
2
如果你不能像其他帖子中建议的那样使用basename,你可以一直使用sed。这里有一个(丑陋的)例子。它不是最大的,但它通过提取所需的字符串并用所需的字符串替换输入来工作。
这将为您提供输出
|
![]() |
11
2
注意建议的Perl解决方案:它删除第一个点之后的任何内容。
如果您想用Perl来实现它,这是可行的:
但是如果您使用bash,解决方案
|
![]() |
12
1
将最高评级的答案与第二个最高评级的答案组合以获取不带完整路径的文件名:
|
![]() |
13
0
basename会这样做,删除路径。如果给定后缀,并且它与文件的后缀匹配,那么它也将删除后缀,但是您需要知道给命令指定的后缀。否则,您可以使用mv并找出新名称应该是另一种方式。 |
![]() |
Lanz Joshua · 如何在PHP中从文件名中获取特定单词? 7 年前 |
![]() |
arc95 · 获取名称首字母相同的所有文件或图像 7 年前 |
![]() |
Luca Ricci · Grunt文件名作为变量 7 年前 |
![]() |
MakkaCha · 使用批处理脚本从文件名中删除日期 7 年前 |
![]() |
XtremeBaumer · FilenameFilter产生神秘结果 7 年前 |
![]() |
JKU · vimrc文件中的“%:r”是什么? 7 年前 |