gpt4 book ai didi

bash - bash :播放当前目录中的所有音频

转载 作者:行者123 更新时间:2023-12-02 22:51:21 25 4
gpt4 key购买 nike

这是一个bash脚本,

  • 获取当前目录中的所有文件,然后
  • 获取其中的所有音频文件(允许文件名具有空格)
  • 将列表发送到audacious -p-它将播放列表。

  • 第三步是脚本失败的地方。这是脚本:
    #!/bin/bash

    find $1 -name '* *' | while read filename; do

    Type=`file -i "$filename" -F "::" | sed 's/.*:: //' | sed 's/\/.*$//'`

    if [ $Type=audio ]; then
    List="$List '$filename'"
    fi
    done

    audacious2 -p $List &

    所以问题是:我该如何转换
    file name 1
    file name 2
    file name 3


    'file name 1' 'file name 2' 'file name 3'

    猛击?

    最佳答案

    #!/bin/sh
    #find "$1" -name '* *' | # Edited as per OP's request
    find . -type f -name '* *' |
    while read -r filename; do
    case `file -i "$filename" -F "::"` in
    *::" audio"/*) echo "$filename" | tr '\012' '\000' ;;
    esac
    done |
    xargs -0 audacious2 -p &

    这里的重点是使用 xargs将文件名列表提供给命令,但是我希望您也将欣赏模式匹配条件现在变得更加优雅;肯定学会使用 case。 (希望我从 file正确获得了输出。)

    编辑已更新为使用 find -type fread -rtr '\012' '\000'xargs -0。通过使用零字节作为终止符, xargs可以接受文件名中的空格和换行符。

    关于bash - bash :播放当前目录中的所有音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7104138/

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