如何在Mac上的第一个点之后删除文件名的所有部分

问题描述 投票:1回答:1

我正在尝试在Mac终端上执行此操作

我想删除文件名第一个点之后的所有元素,然后在末尾添加扩展名。

假设我有:file1.some.stuff.mp3 file2.other.stuff.stuff.mp3 file3.some.thing.mp3

我在文件名file4.one.two.three.four.mp3中可以附加n项的位置

但是我只对名字和结尾的扩展名感兴趣

并且我想以以下结尾:file1.mp3 file2.mp3 file3.mp3 file4.mp3

我的所有文件都在同一文件夹中。

bash macos terminal rename filenames
1个回答
3
投票

只要确保文件名至少有一个.,在.前后都有非空字符串,这是简单的参数扩展问题。

for f in file1.some.stuff.mp3 file2.other.stuff.stuff.mp3 file3.some.thing.mp3 file4.one.two.three.four.mp3; do
    echo "${f%%.*}.${f##*.}"
done

产生

file1.mp3
file2.mp3
file3.mp3
file4.mp3

在文件退出的目录中,使用类似

for f in *.mp3; do

迭代所有MP3文件。


0
投票

使用bash变量替换,您可以实现以下目标:

for i in file1.some.stuff.mp3 file2.other.stuff.stuff.mp3 file3.some.thing.mp3
do
  echo "${i/.*./.}"
done

[${i/.*./.}表示将.*.替换为.

© www.soinside.com 2019 - 2024. All rights reserved.