首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Unix管道和位置参数

Unix管道和位置参数
EN

Stack Overflow用户
提问于 2012-10-01 09:12:40
回答 4查看 1.7K关注 0票数 5

我正在组合soxlame来生成一个新的音乐文件,但是为了使用管道在一行中完成所有工作,似乎有必要用-字符“标记”输出和输入边界。我继承了这段代码,所以让我来展示一下。

代码语言:javascript
复制
sox $DIRNAME/$BASENAME -e signed-integer -r 8000 -c 2 -t wav - trim $POSITIONS | lame -v -V4 --resample 8 - $DIRNAME/${NOEXT}.mp3

wavtrim之间的-是输出文件,--resample 8$DIRNAME/${NOEXT}.mp3之间的-是输入文件。

我正在努力寻找有关这方面的更多信息,比如是否可以使用任何字符,或者-是否在这方面是特殊的。这叫什么,它的工作原理是什么?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-10-01 09:16:48

许多Unix命令行实用程序使用"-“作为缩写,表示”在这里不使用实际文件,而是使用stdin (或stdout)“。Sox是以下程序之一:

这是来自sox manpage

通过使用特殊文件名'-‘,可以在简单的管道操作中使用

SoX,如果用它代替输入文件名,将导致SoX从’标准输入‘(stdin)读取音频数据,如果用它代替输出文件名,将使SoX将音频数据发送到’标准输出‘(stdout)。请注意,当使用此选项时,还必须提供文件类型(请参阅下面的-t )。

票数 6
EN

Stack Overflow用户

发布于 2012-10-01 09:17:09

按照惯例,unix和它的朋友使用-来表示标准输入和标准输出。

它不是100%通用的,但它被广泛使用。

票数 2
EN

Stack Overflow用户

发布于 2012-10-01 09:23:09

在您的示例中,它与

代码语言:javascript
复制
/dev/stdin

试着用它替换你的-,你会看到的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12666501

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档