用shell脚本遍历文件夹中的所有mp3文件而且计算每个mp3文件的md5值,并按照{"md5":"md5的值","url":"file://Story/mp3文件名}的格式输出到一个文件
时间: 2023-05-29 19:02:42 浏览: 134
#!/bin/bash
# 设置要遍历的文件夹路径
folder_path="/Path/To/Folder"
# 定义输出文件路径
output_file="/Path/To/Output/File.txt"
# 遍历文件夹中的所有mp3文件
find $folder_path -type f -name "*.mp3" -print0 | while read -d $'\0' mp3_file
do
# 计算md5值
md5_value=$(md5sum "$mp3_file" | awk '{print $1}')
# 拼接输出格式
output="{\"md5\":\"$md5_value\",\"url\":\"file://$mp3_file\"}"
# 输出到文件
echo $output >> $output_file
done
echo "Done!"
相关问题
在 macos 下用 shell 脚本实现以下功能:将当前目录下的所有 .m4a 格式文件通过 ffmpeg 转换成 mp3 格式
### 回答1:
您可以使用以下 shell 脚本实现在 macOS 下将当前目录下的所有 .m4a 格式文件转换成 mp3 格式的功能:
```bash
#! /bin/bash
for file in *.m4a
do
ffmpeg -i "$file" "${file%.m4a}.mp3"
done
```
这段脚本使用了一个 for 循环来遍历当前目录下所有 .m4a 格式文件,并使用 ffmpeg 命令将它们转换成 mp3 格式。
在使用这段脚本之前,请确保您已经安装了 ffmpeg。您可以使用以下命令来安装 ffmpeg:
```bash
brew install ffmpeg
```
如果您使用的是 macOS 自带的 Bash,则可能需要使用管理员权限来运行上述命令(即在命令前加上 `sudo`)。
希望这些信息对您有帮助!
### 回答2:
在 macOS 下使用 shell 脚本实现将当前目录下的所有 .m4a 格式文件通过 ffmpeg 转换成 mp3 格式的功能,可以按照以下步骤操作:
1. 确保已经安装了 ffmpeg。如果没有安装,可以使用 Homebrew 进行安装,命令为 `brew install ffmpeg`。
2. 打开终端,并进入要转换文件所在的目录。
3. 创建一个新的 shell 脚本文件,例如 `convert.sh`。
4. 在 `convert.sh` 文件中输入以下内容:
```shell
#!/bin/bash
for file in *.m4a; do
ffmpeg -i "$file" -codec:a libmp3lame -qscale:a 2 "${file%.m4a}.mp3";
done
```
这段脚本会遍历当前目录下的所有 .m4a 文件,并使用 ffmpeg 将其转换成 mp3 格式。转换后的文件名保持不变,只是扩展名改为 .mp3。
5. 保存并关闭 `convert.sh` 文件。
6. 在终端中执行以下命令,使 `convert.sh` 文件可执行:
```shell
chmod +x convert.sh
```
7. 最后,在终端中执行以下命令运行脚本:
```shell
./convert.sh
```
脚本会开始转换当前目录下所有的 .m4a 文件,并生成对应的 mp3 格式文件。
注意:在执行过程中,可能会提示是否覆盖已存在的文件。如果不希望覆盖原有的文件,可以修改 `convert.sh` 中的输出文件名部分代码。
在 macos 下用 shell 脚本实现以下功能:将当前目录下所有 .mp3 格式的文件重命名,仅保留原名称第二个 - 之前的内容(不包括第二个 - )
在 macOS 下,您可以使用以下命令来实现将当前目录下所有 .mp3 格式的文件重命名,仅保留原名称第二个 - 之前的内容(不包括第二个 - )的功能:
```
for file in *.mp3; do
newname=$(echo "$file" | awk -F'-' '{print $1}')
mv "$file" "$newname.mp3"
done
```
这个脚本会循环遍历当前目录下的所有 .mp3 格式的文件,然后使用 `awk` 命令从文件名中提取出仅保留第二个 - 之前的内容,并使用 `mv` 命令对文件进行重命名。
注意:这个脚本假设文件名中仅包含一个 - ,如果文件名中包含多个 - ,那么这个脚本可能会产生意外的结果。
希望这个回答对您有帮助!
阅读全文