Çıktıyı filtrelemek ve daha sonra bir dosyaya yazmak için tüm std-çıktılarını bash'tan 'grep' veya 'sed' gibi bir komuta yönlendirmek nasıl?
Bu benim prensipte istediğim şey: exec > >(cat | cat >>/tmp/myoutput.txt). Son komut beklendiği gibi çalışır. İlk Ama eğer Değiştir catile grep -v 'foo'ya da sed 's/foo/bar/g'hiçbir veri dosyasının içine yazılır.
Yukarıdaki örneğin grep veya sed ile çalışmasını nasıl sağlayabilirim?
Arka plan:
Hata mesajlarını .xsession-error'lerden filtrelemek istiyorum.
sed -i 's/foo/bar/g' .xsession-errors
çalışmıyor çünkü sed .xsession-error dosyasını değiştirir ve programlardan gelecekteki çıktısı görünmez. Bu yüzden elde edilecek seçeneklerden biri / etc / X11 / Xsession içindeki bir satırı mesajları filtreleyen kodla değiştirmek olacaktır.
Daha fazla bilgi burada:
catBoruların alt kabukta beklendiği gibi çalıştığını göstermek ve her şeyi bir dosyaya yönlendirmek için 2 kez kullandım .catTabii is not nihai sürümde gerekli.- Tamponları doldurmak için yeterli verim vardı, çünkü
ls /usr/tamponları doldurmak için birkaç kez yaptım .) exec | sed ...çalışmıyor
cat | catbaşka bir komutun dışında bir şey yapmak istiyorum" demekten fayda olabilir cat. (2) Denediğini düşündüğüm şeyi denedim ve istediğin gibi çalıştı. (3) bash | sed …Bash'ı başlatmak ve sonra çıktısını yönlendirmek yerine yapabilir misin ?
catbaşka birine girmelisinizcat? Denedinexec | sed ... >> filemi