BASH-重命名媒体文件。从文件名中删除特殊字符。目标是文件名= title.filetype

发布于 2025-01-31 03:48:12 字数 1400 浏览 2 评论 0原文

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

另类 2025-02-07 03:48:12

是您需要的吗?

$ cat sample.txt
01 - Concrete Jungle.flac
01. Easy.flac
03 - Last Goodbye.flac
05 - Movement in the Light.flac
05-rival_sons-feral_roots.flac
05. Songbird.flac
06 - The First Taste.flac
06. Led Zeppelin - Kashmir.flac
12 Crying Like A Church On Monday.flac
12.-The Way You Make Me Feel.flac
14. Blur - Tender (Zoë Ball XFM Session).flac
20. He Ain't Heavy, He's My Brother.flac
All By Myself - AnythingOldSchool.flac

$ sed 's/^[^[:alpha:]]*//' sample.txt
Concrete Jungle.flac
Easy.flac
Last Goodbye.flac
Movement in the Light.flac
rival_sons-feral_roots.flac
Songbird.flac
The First Taste.flac
Led Zeppelin - Kashmir.flac
Crying Like A Church On Monday.flac
The Way You Make Me Feel.flac
Blur - Tender (Zoë Ball XFM Session).flac
He Ain't Heavy, He's My Brother.flac
All By Myself - AnythingOldSchool.flac

让我们进行重命名实验 - 创建两个脚本

  1. 从smack.txt中创建文件。

     设置-e
     in =“ $ {1:-sample.txt}”
     [! -f“ $ in”]&& {echo“ $ 0-未找到的文件$。”;出口1; }
     ifs =读取-r文件
    
     做
    
        回声“在$文件上工作...”
    
        触摸“ $文件”
    
     完成< “ $ {in}”
     
  2. 通过script.sh

      for *in *;做
    
     newfilename = $(sed's/^[^[:alpha:]]*//'<<
    
     MV“ $ filename”“ $ newfilename”;
    
     完毕
     

,然后在终端中尝试它们

$ ./script.sh
$ ls

01 - Concrete Jungle.flac                      06 - The First Taste.flac                      All By Myself - AnythingOldSchool.flac
01. Easy.flac                                  06. Led Zeppelin - Kashmir.flac                sample.txt
03 - Last Goodbye.flac                         12 Crying Like A Church On Monday.flac         script.sh
05 - Movement in the Light.flac                12.-The Way You Make Me Feel.flac              script1.sh
05-rival_sons-feral_roots.flac                 14. Blur - Tender (Zoë Ball XFM Session).flac
05. Songbird.flac                              20. He Ain't Heavy, He's My Brother.flac

$ ./script1.sh

$ ls -al

total 24
drwxr-xr-x  18 yao-nienyang  staff  576  5 21 19:23 .
drwxr-xr-x  28 yao-nienyang  staff  896  5 21 19:13 ..
-rw-r--r--   1 yao-nienyang  staff    0  5 21 19:13 All By Myself - AnythingOldSchool.flac
-rw-r--r--   1 yao-nienyang  staff    0  5 21 19:13 Blur - Tender (Zoë Ball XFM Session).flac
-rw-r--r--   1 yao-nienyang  staff    0  5 21 19:13 Concrete Jungle.flac
-rw-r--r--   1 yao-nienyang  staff    0  5 21 19:13 Crying Like A Church On Monday.flac
-rw-r--r--   1 yao-nienyang  staff    0  5 21 19:13 Easy.flac
-rw-r--r--   1 yao-nienyang  staff    0  5 21 19:13 He Ain't Heavy, He's My Brother.flac
-rw-r--r--   1 yao-nienyang  staff    0  5 21 19:13 Last Goodbye.flac
-rw-r--r--   1 yao-nienyang  staff    0  5 21 19:13 Led Zeppelin - Kashmir.flac
-rw-r--r--   1 yao-nienyang  staff    0  5 21 19:13 Movement in the Light.flac
-rw-r--r--   1 yao-nienyang  staff    0  5 21 19:13 Songbird.flac
-rw-r--r--   1 yao-nienyang  staff    0  5 21 19:13 The First Taste.flac
-rw-r--r--   1 yao-nienyang  staff    0  5 21 19:13 The Way You Make Me Feel.flac
-rw-r--r--   1 yao-nienyang  staff    0  5 21 19:13 rival_sons-feral_roots.flac
-rw-r--r--   1 yao-nienyang  staff  402  5 21 19:13 sample.txt
-rwxr-xr-x   1 yao-nienyang  staff  386  5 21 19:13 script.sh
-rwxr-xr-x   1 yao-nienyang  staff  213  5 21 19:13 script1.sh

is that what you need?

$ cat sample.txt
01 - Concrete Jungle.flac
01. Easy.flac
03 - Last Goodbye.flac
05 - Movement in the Light.flac
05-rival_sons-feral_roots.flac
05. Songbird.flac
06 - The First Taste.flac
06. Led Zeppelin - Kashmir.flac
12 Crying Like A Church On Monday.flac
12.-The Way You Make Me Feel.flac
14. Blur - Tender (Zoë Ball XFM Session).flac
20. He Ain't Heavy, He's My Brother.flac
All By Myself - AnythingOldSchool.flac

$ sed 's/^[^[:alpha:]]*//' sample.txt
Concrete Jungle.flac
Easy.flac
Last Goodbye.flac
Movement in the Light.flac
rival_sons-feral_roots.flac
Songbird.flac
The First Taste.flac
Led Zeppelin - Kashmir.flac
Crying Like A Church On Monday.flac
The Way You Make Me Feel.flac
Blur - Tender (Zoë Ball XFM Session).flac
He Ain't Heavy, He's My Brother.flac
All By Myself - AnythingOldSchool.flac

Let's do a renaming experiment - create two scripts

  1. create the files from sample.txt by script.sh

     set -e
     in="${1:-sample.txt}"
     [ ! -f "$in" ] && { echo "$0 - File $in not found."; exit 1; }
     while IFS= read -r file
    
     do
    
        echo "Working on $file ..."
    
        touch "$file"
    
     done < "${in}"
    
  2. rename files by script2.sh:

     for filename in *; do
    
     newFilename=$(sed 's/^[^[:alpha:]]*//' <<< "$filename")
    
     mv "$filename" "$newFilename";
    
     done
    

then try them in the terminal

$ ./script.sh
$ ls

01 - Concrete Jungle.flac                      06 - The First Taste.flac                      All By Myself - AnythingOldSchool.flac
01. Easy.flac                                  06. Led Zeppelin - Kashmir.flac                sample.txt
03 - Last Goodbye.flac                         12 Crying Like A Church On Monday.flac         script.sh
05 - Movement in the Light.flac                12.-The Way You Make Me Feel.flac              script1.sh
05-rival_sons-feral_roots.flac                 14. Blur - Tender (Zoë Ball XFM Session).flac
05. Songbird.flac                              20. He Ain't Heavy, He's My Brother.flac

$ ./script1.sh

$ ls -al

total 24
drwxr-xr-x  18 yao-nienyang  staff  576  5 21 19:23 .
drwxr-xr-x  28 yao-nienyang  staff  896  5 21 19:13 ..
-rw-r--r--   1 yao-nienyang  staff    0  5 21 19:13 All By Myself - AnythingOldSchool.flac
-rw-r--r--   1 yao-nienyang  staff    0  5 21 19:13 Blur - Tender (Zoë Ball XFM Session).flac
-rw-r--r--   1 yao-nienyang  staff    0  5 21 19:13 Concrete Jungle.flac
-rw-r--r--   1 yao-nienyang  staff    0  5 21 19:13 Crying Like A Church On Monday.flac
-rw-r--r--   1 yao-nienyang  staff    0  5 21 19:13 Easy.flac
-rw-r--r--   1 yao-nienyang  staff    0  5 21 19:13 He Ain't Heavy, He's My Brother.flac
-rw-r--r--   1 yao-nienyang  staff    0  5 21 19:13 Last Goodbye.flac
-rw-r--r--   1 yao-nienyang  staff    0  5 21 19:13 Led Zeppelin - Kashmir.flac
-rw-r--r--   1 yao-nienyang  staff    0  5 21 19:13 Movement in the Light.flac
-rw-r--r--   1 yao-nienyang  staff    0  5 21 19:13 Songbird.flac
-rw-r--r--   1 yao-nienyang  staff    0  5 21 19:13 The First Taste.flac
-rw-r--r--   1 yao-nienyang  staff    0  5 21 19:13 The Way You Make Me Feel.flac
-rw-r--r--   1 yao-nienyang  staff    0  5 21 19:13 rival_sons-feral_roots.flac
-rw-r--r--   1 yao-nienyang  staff  402  5 21 19:13 sample.txt
-rwxr-xr-x   1 yao-nienyang  staff  386  5 21 19:13 script.sh
-rwxr-xr-x   1 yao-nienyang  staff  213  5 21 19:13 script1.sh
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文