[]
linuxda grep komutu
Merhaba arkadaşlar
bir stream var diyelim microsoft.com ve ben buna ffmpeg -i yaptığımda codeclerini filan ekrana basıyorum. Şimdi öyle bir grep lazım ki o ekrana basılan bilgiler içinde aac var mı yok mu bana gösterecek. Şu komut işe yaramıyor malesef
ffmpeg -i microsoft.com | grep "aac"
ne önerirsiniz?
bir stream var diyelim microsoft.com ve ben buna ffmpeg -i yaptığımda codeclerini filan ekrana basıyorum. Şimdi öyle bir grep lazım ki o ekrana basılan bilgiler içinde aac var mı yok mu bana gösterecek. Şu komut işe yaramıyor malesef
ffmpeg -i microsoft.com | grep "aac"
ne önerirsiniz?
ffmpeg çıktısı text ise yazdığınız grep çalışır. Çıktıda binary içerik varsa grep -a ile deneyin.
- Abdurrahman (14.06.16 13:08:17)
text çıktı ama adresten sonra şu hatayı veriyor: Invalid data found when processing input
- beholderrulez (14.06.16 13:17:35)
O hata ffmpeg'in hatasıdır, grep komutunun değil. Burada grep kendisinden önce gelen text üzerinde arama yapar. Doğal olarak sizin komutunuzda grep o verdiği çıktı mesajı içerisinde arama yapıyor.
- Abdurrahman (14.06.16 13:41:29 ~ 13:43:21)
komutu biraz değiştirdim:
find microsoft.com | xargs -r -L 1 ffmpeg -i | grep -F "aac"
find: `microsoft.com: No such file or directory
yani linki bir şekilde find formatına uyarlayabilirsem olacak gibi. Ne dersiniz?
find microsoft.com | xargs -r -L 1 ffmpeg -i | grep -F "aac"
find: `microsoft.com: No such file or directory
yani linki bir şekilde find formatına uyarlayabilirsem olacak gibi. Ne dersiniz?
- beholderrulez (14.06.16 13:55:02)
Ben ffmpeg'in ne yaptığını bilmiyorum. Yani ffmpeg -i link komutuyla nasıl bir çıktı alıyorsunuz, önce bunu görmek lazım. Sonra içerisinden gerekli aramayı yaparsınız. Find komutu ise farklı bir komut, sizin aradığınızla pek ilgisi yok.
- Abdurrahman (14.06.16 13:59:41)
Program 1
Metadata:
service_name : Service01
service_provider: FFmpeg
Stream #0:0[0x100]: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p, 720x576 [SAR 64:45 DAR 16:9], 25 fps, 25 tbr, 90k tbn, 50 tbc
Stream #0:1[0x101]: Audio: aac (LC) ([15][0][0][0] / 0x000F), 48000 Hz, stereo, fltp, 106 kb/s
şöyle bir çıktısı var. Bunu kontrol etmem lazım Audio:aac kısmı geliyorsa sorun yok. Ses kaybolduğunda bu aac de kayboluyor. Onu kontrol etmem lazım periyodik zamanlarda
Metadata:
service_name : Service01
service_provider: FFmpeg
Stream #0:0[0x100]: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p, 720x576 [SAR 64:45 DAR 16:9], 25 fps, 25 tbr, 90k tbn, 50 tbc
Stream #0:1[0x101]: Audio: aac (LC) ([15][0][0][0] / 0x000F), 48000 Hz, stereo, fltp, 106 kb/s
şöyle bir çıktısı var. Bunu kontrol etmem lazım Audio:aac kısmı geliyorsa sorun yok. Ses kaybolduğunda bu aac de kayboluyor. Onu kontrol etmem lazım periyodik zamanlarda
- beholderrulez (14.06.16 14:32:18)
Sizin verdiğiniz komut bu çıktıyı vermiyor işte. Neden vermiyor bunu çözelim önce, sonra bunun içerisinde aac olup olmadığını arayalım. Eğer bu çıktıyı veriyorsa sizin ilk mesajınızda verdiğiniz komut zaten çalışırdı.
Bu komut direkt olarak bu çıktıyı verip işlemi bitiriyor mu, yoksa sürekli olarak çalışır vaziyette güncelleniyor mu? Eğer son söylediğim gibiyse grep komutuna devam etmesi için ilk aşamayı geçmesi yani komutun tamamlanması gerekir.
Bu komut direkt olarak bu çıktıyı verip işlemi bitiriyor mu, yoksa sürekli olarak çalışır vaziyette güncelleniyor mu? Eğer son söylediğim gibiyse grep komutuna devam etmesi için ilk aşamayı geçmesi yani komutun tamamlanması gerekir.
- Abdurrahman (14.06.16 14:42:49 ~ 14:44:59)
bu çıktıyı ffmpeg -i link deyince alabiliyorum
- beholderrulez (14.06.16 14:47:51)
root@ca:~# cat test
Program 1
Metadata:
service_name : Service01
service_provider: FFmpeg
Stream #0:0[0x100]: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p, 720x576 [SAR 64:45 DAR 16:9], 25 fps, 25 tbr, 90k tbn, 50 tbc
Stream #0:1[0x101]: Audio: aac (LC) ([15][0][0][0] / 0x000F), 48000 Hz, stereo, fltp, 106 kb/s
root@ca:~# cat test | grep aac
Stream #0:1[0x101]: Audio: aac (LC) ([15][0][0][0] / 0x000F), 48000 Hz, stereo, fltp, 106 kb/s
Yani çıktı bu olduğu zaman grep işinizi görür.
Ffmpeg komutunu şu şekilde düzeltip deneyin bir de:
ffmpeg -i link 2>&1 | grep aac
Program 1
Metadata:
service_name : Service01
service_provider: FFmpeg
Stream #0:0[0x100]: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p, 720x576 [SAR 64:45 DAR 16:9], 25 fps, 25 tbr, 90k tbn, 50 tbc
Stream #0:1[0x101]: Audio: aac (LC) ([15][0][0][0] / 0x000F), 48000 Hz, stereo, fltp, 106 kb/s
root@ca:~# cat test | grep aac
Stream #0:1[0x101]: Audio: aac (LC) ([15][0][0][0] / 0x000F), 48000 Hz, stereo, fltp, 106 kb/s
Yani çıktı bu olduğu zaman grep işinizi görür.
Ffmpeg komutunu şu şekilde düzeltip deneyin bir de:
ffmpeg -i link 2>&1 | grep aac
- Abdurrahman (14.06.16 15:25:27)
evet çok teşekkür ederim. Sizin verdiğiniz komut aacli satırı çıkartıyor. Süper oldu bu. Tekrar teşekkürler
- beholderrulez (14.06.16 19:36:34)
1