【发布时间】:2010-10-08 14:41:12
【问题描述】:
使用示例(人为!):将 .mp3 文件重命名为 .txt。
我希望能够做类似的事情
find -name '*.mp3' -print0 | xargs -0 -I'file' mv file ${file%.mp3}.txt
这行不通,所以我将find 的输出通过sed -e 's/.mp3//g' 管道化,这样就行了。
虽然看起来有点骇人听闻; 有没有办法使用通常的 bash ${x%y} 语法?
【问题讨论】:
-
您提出了一个问题,但没有纯粹的答案。或者至少是您愿意接受的答案,因为您从未检查过接受。我的“hackish”方式是管道
find ... | sed ... | xargs ...。您将其作为替代方法。所以为了清楚地分解它,xargs本身不支持 Bash 变量扩展。你能用很多不同的方法解决这个问题吗?如您所知,是的!你能在xargs中“纯粹”这样做吗?不!