Çı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 cat
ile 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:
cat
Boruların alt kabukta beklendiği gibi çalıştığını göstermek ve her şeyi bir dosyaya yönlendirmek için 2 kez kullandım .cat
Tabii 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 | cat
baş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 ?
cat
başka birine girmelisinizcat
? Denedinexec | sed ... >> file
mi