gpt4 book ai didi

bash - 使用 bash 循环浏览目录中的文件,然后根据文件名创建子目录

转载 作者:行者123 更新时间:2023-12-04 23:24:37 25 4
gpt4 key购买 nike

我想要做的是使用 bash

1) cycle through files in a directory 
2) then create a sub-directory based on the file names
3) then split mp3 files using ffmpeg in 3 second increments.

我可以创建子目录,ffmpeg 代码使用正确的名称拆分文件。我似乎遇到的问题是循环。它创建 split-chirp 目录及其所有文件,但不处理 粉红色.mp3 文件。见下图的起始目录
Start directory

查看结束目录的图像
Ending directory

它不会创建拆分粉色目录和所有文件(我知道这是一个循环问题,只是不知道为什么)

我使用命令 bash mp3spl.sh *.mp3 运行代码

下面的代码
#!/bin/bash
currentdir=$(pwd) #get current directory

for f in $currentdir/*.mp3
do

fn=`echo "$1" | cut -d'.' -f1` #get just the filename no extension
splitdirname="$currentdir/split-$fn" #sub directory with correct names
mkdir -p "$splitdirname" #make split directory
echo "Processing $f"
ffmpeg -i "$1" 2> tmp.txt

ffmpeg -i "$1" -f segment -segment_time 3 -ar 22050 -ac 1 "$splitdirname/$fn-%03d.mp3"

#rm tmp.txt

done

最佳答案

$1是不必要的,因为您想遍历所有 mp3 文件。

fn=$(basename "$f" | cut -d'.' -f1) #get just the filename no extension

我留下了其余的原封不动。

关于bash - 使用 bash 循环浏览目录中的文件,然后根据文件名创建子目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53639704/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com