我正在使用 LAME 将 .wav 文件转换为 .mp3,如何将传递的参数附加到终端以输出 .mp3 名称?

我正在使用 LAME 将 .wav 文件转换为 .mp3,如何将传递的参数附加到终端以输出 .mp3 名称?

我目前的 LAME 命令是:

lame -b 128 -m j -h -V 1 -B 256 -F *.wav file.mp3

我想要的是:

在文件中:file.mp3

输出文件:file_-b_128_-m_j_-h_-V_1_-B_256_-F.mp3

此外,我将改变论点,请不要发布仅适用于这些论点集的答案。

我使用 Ubuntu 16.04,我的 LAME 版本是

LAME 64位版本3.99.5(http://lame.sf.net

我有一个想法,也许我们可以用:来跟踪历史记录history | tail -n 1并将其附加到.mp3创建的文件中。

答案1

原始版本

我建议您使用 shellscript。

  • 例如使用名称wav2mp3

  • 将命令行和所有其他相关信息存储在 shellscript 中。

  • 我建议您避免在文件名中使用具有特殊含义的字符(空格[和),请将其替换为]_

    #!/bin/bash
    
    options="-b 128 -m j -h -V 1 -B 256 -F"
    OptInName=${options//\ /_}
    
    # only testing here, so making it an echo command line
    
    echo lame "$options" *.wav "mymp3_$OptInName.mp3"
    
  • 使其可执行

    chmod ugo+x wav2mp3
    
  • 运行它(它在这里只是回响,显示了真实的东西是什么样子),

    $ ./wav2mp3
    lame -b 128 -m j -h -V 1 -B 256 -F hello.wav hello world.wav mymp3_-b_128_-m_j_-h_-V_1_-B_256_-F.mp3
    

带参数的版本

如果 b 值是唯一的选项,您想要更改,那么在调用 wav2mp3 时您可以将其作为唯一的参数。

#!/bin/bash

if [ $# -ne 1 ]
then
 echo "Usage:    $0 <b-value>"
 echo "Example:  $0 128"
else
 options="-b $1 -m j -h -V 1 -B 256 -F"
 OptInName=${options//\ /_}

# only testing here, so making it an echo command line

 echo lame "$options" *.wav "mymp3_$OptInName.mp3"
fi

例子:

$ ./wav2mp3 128
lame -b 128 -m j -h -V 1 -B 256 -F hello.wav hello world.wav mymp3_-b_128_-m_j_-h_-V_1_-B_256_-F.mp3
$ ./wav2mp3 256
lame -b 256 -m j -h -V 1 -B 256 -F hello.wav hello world.wav mymp3_-b_256_-m_j_-h_-V_1_-B_256_-F.mp3

具有任意数量参数的版本

#!/bin/bash

if [ $# -eq 0 ]
then
 echo "Usage:    $0 <parameters>"
 echo "Example:  $0 -b 192 -m j -h -V 1 -B 256 -F"
else
 options="$*"
 OptInName=${options//\ /_}

# only testing here, so making it an echo command line

# When using parameters without white space (and this is the case here),
# you should use $* and when calling the program (in this case 'lame')
# I think you should *not* use quotes (") in order to get them separated.
# So $options, not "$options" in the line below.

 echo lame $options *.wav "mymp3_$OptInName.mp3"
fi

例子:

$ ./wav2mp3star -b 192 -m j -h -V 1 -B 256 -F
lame -b 192 -m j -h -V 1 -B 256 -F hello.wav hello world.wav mymp3_-b_192_-m_j_-h_-V_1_-B_256_-F.mp3

相关内容