오디오 클립의 메타 정보를 얻기 위해 ffmpeg를 사용하고 있습니다. 그러나 나는 그것을 잡을 수 없습니다.
$ 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
...
이 ffmpeg 출력은 stderr로 전달됩니다.
$ ffmpeg -i 01-Daemon.mp3 2> /dev/null
그래서 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
그러나 stderr을 stdout으로 리디렉션하지 않으려면 어떻게해야합니까?
grep
stdin에서만 작동 할 수 있습니다. grep의 stdin을 다른 명령의 stdout에 연결하는 쉘로 작성된 파이프입니다. 그리고 쉘은 stdout을 stdin에만 연결할 수 있습니다.
grep
stdout에서만 작동 할 수 있다고 생각합니다 (표준 소스를 찾을 수는 없지만). 즉, 모든 스트림을 stdout으로 먼저 변환해야합니다.