相关疑难解决方法(0)

如何grep标准错误流(stderr)?

我正在使用 ffmpeg 来获取音频剪辑的元信息。但我无法grep它。

    $ ffmpeg -i 01-Daemon.mp3  |grep -i Duration
    FFmpeg version SVN-r15261, Copyright (c) 2000-2008 Fabrice Bellard, et al.
      configuration: --prefix=/usr --bindir=/usr/bin 
      --datadir=/usr/share/ffmpeg --incdir=/usr/include/ffmpeg --libdir=/usr/lib
      --mandir=/usr/share/man --arch=i386 --extra-cflags=-O2 
      ...
Run Code Online (Sandbox Code Playgroud)

我检查过,这个 ffmpeg 输出被定向到 stderr。

$ ffmpeg -i 01-Daemon.mp3 2> /dev/null
Run Code Online (Sandbox Code Playgroud)

所以我认为 grep 无法读取错误流来捕获匹配的行。我们如何启用 grep 读取错误流?

使用nixCraft链接,我将标准错误流重定向到标准输出流,然后 grep 工作。

$ ffmpeg -i 01-Daemon.mp3 2>&1 | grep -i Duration
  Duration: 01:15:12.33, start: 0.000000, bitrate: 64 kb/s
Run Code Online (Sandbox Code Playgroud)

但是如果我们不想将 stderr 重定向到 stdout 呢?

grep io-redirection ffmpeg

121
推荐指数
8
解决办法
10万
查看次数

标签 统计

ffmpeg ×1

grep ×1

io-redirection ×1