在-exec中运行命令之前对find的输出进行排序

yknivag

我有一系列包含多个mp3文件的目录,文件名分别为001.mp3、002.mp3,...,030.mp3。

我想要做的是将它们全部按顺序放入单个mp3文件中,并向其中添加一些元数据。

这是我目前的内容(为清楚起见,删除了一些变量定义):

#!/bin/bash
for d in */; do
    cd $d
    find . -iname '*.mp3' -exec lame --decode '{}' - ';' | lame --tt "$title_prefix$name" --ty "${name:5}" --ta "$artist" --tl "$album" -b 64 - $final_path"${d%/}".mp3
    cd ..
done

有时,这行得通,并且我得到一个包含正确顺序所有“音轨”的文件。

但是,我经常会得到一个带有所有“音轨”的相反顺序的文件,这确实不好。

我不明白的是为什么在脚本的不同运行之间顺序会有所不同,因为所有目录都包含相同的文件名集。我已经翻阅了手册页,找不到用于查找的排序选项。

我可以运行find . -iname '*.mp3' | sort -n >> temp.txt将文件放在一个临时文件中,然后尝试遍历该文件,但是我无法将其与la脚一起使用。

有什么办法可以在find运行exec之前进行排序吗?我在这里和其他地方可以找到很多-exec ls使用exec进行操作的示例,但在需要使用exec执行更复杂的操作的地方却找不到。

甲肾上腺素
find . -iname '*.mp3' -print0 | sort -zn | xargs -0 -I '{}' lame --decode '{}' - | lame --tt "$title_prefix$name" --ty "${name:5}" --ta "$artist" --tl "$album" -b 64 - $final_path"${d%/}".mp3

未经测试,但可能值得一试。

通常,xargs将参数附加到您给它的命令的末尾。-I选项告诉它替换给定的字符串({}在这种情况下)。


编辑:我已经添加了-print0-z-0以确保管道仍然有效,即使你的文件名包含换行符。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在脚本中对 find 命令的输出进行排序

来自分类Dev

如何对find的输出进行排序?

来自分类Dev

在Android中对Json输出进行排序

来自分类Dev

Dig命令:是否保证对输出进行排序?

来自分类Dev

对“查找”的输出进行排序?

来自分类Dev

NLTK中的FreqDist不对输出进行排序

来自分类Dev

如何在R中对SessionInfo()的输出进行排序?

来自分类Dev

如何在Django中对模型输出进行排序?

来自分类Dev

如何对`ls`的输出进行排序?

来自分类Dev

如何防止`ls`对输出进行排序?

来自分类Dev

使用usort对json输出进行排序

来自分类Dev

从终端对redis输出进行排序以与comm命令一起使用

来自分类Dev

将mtime添加到grep -c输出中,并按mtime对输出进行排序

来自分类Dev

根据正则表达式对Mongodb find()输出进行排序

来自分类Dev

svn状态| 排序-不对输出进行排序

来自分类Dev

在熊猫python中对qcut的五分位数输出进行排序

来自分类Dev

以特定顺序合并文件夹中的所有文档,并对合并后的输出进行排序

来自分类Dev

在Bash中对文件/文件夹输出进行排序

来自分类Dev

PHP如何在5x5表中对数组的输出进行排序?

来自分类Dev

在java中按不同的值对BufferedWriter字符串输出进行排序

来自分类Dev

文本处理-如何对具有不同目录中重复文件名的find的输出进行唯一排序?

来自分类Dev

在Hadoop中对Mappers的输出进行分区

来自分类Dev

我可以在bash脚本中与OSX`say`命令的输出进行交互吗?

来自分类Dev

是否始终对mapreduce作业的map阶段的输出进行排序?

来自分类Dev

如何对速记git status的输出进行排序?

来自分类Dev

MongoDB按字母顺序对输出进行排序(分组后)

来自分类Dev

通过类方法rails的输出进行排序

来自分类Dev

如何使用mongodb对$ group聚合输出进行排序

来自分类Dev

如何按日期对SVN LS -R输出进行排序

Related 相关文章

  1. 1

    如何在脚本中对 find 命令的输出进行排序

  2. 2

    如何对find的输出进行排序?

  3. 3

    在Android中对Json输出进行排序

  4. 4

    Dig命令:是否保证对输出进行排序?

  5. 5

    对“查找”的输出进行排序?

  6. 6

    NLTK中的FreqDist不对输出进行排序

  7. 7

    如何在R中对SessionInfo()的输出进行排序?

  8. 8

    如何在Django中对模型输出进行排序?

  9. 9

    如何对`ls`的输出进行排序?

  10. 10

    如何防止`ls`对输出进行排序?

  11. 11

    使用usort对json输出进行排序

  12. 12

    从终端对redis输出进行排序以与comm命令一起使用

  13. 13

    将mtime添加到grep -c输出中,并按mtime对输出进行排序

  14. 14

    根据正则表达式对Mongodb find()输出进行排序

  15. 15

    svn状态| 排序-不对输出进行排序

  16. 16

    在熊猫python中对qcut的五分位数输出进行排序

  17. 17

    以特定顺序合并文件夹中的所有文档,并对合并后的输出进行排序

  18. 18

    在Bash中对文件/文件夹输出进行排序

  19. 19

    PHP如何在5x5表中对数组的输出进行排序?

  20. 20

    在java中按不同的值对BufferedWriter字符串输出进行排序

  21. 21

    文本处理-如何对具有不同目录中重复文件名的find的输出进行唯一排序?

  22. 22

    在Hadoop中对Mappers的输出进行分区

  23. 23

    我可以在bash脚本中与OSX`say`命令的输出进行交互吗?

  24. 24

    是否始终对mapreduce作业的map阶段的输出进行排序?

  25. 25

    如何对速记git status的输出进行排序?

  26. 26

    MongoDB按字母顺序对输出进行排序(分组后)

  27. 27

    通过类方法rails的输出进行排序

  28. 28

    如何使用mongodb对$ group聚合输出进行排序

  29. 29

    如何按日期对SVN LS -R输出进行排序

热门标签

归档