O'Reilly logo

Bash. Receptury by Cameron Newham, JP Vossen, Carl Albing

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

2.16. Zapisywanie kopii danych wyjściowych mimo wykorzystywania ich jako danych wejściowych

Problem

Chcemy prześledzić działanie długiej sekwencji operacji potokowych. Na przykład:

$ cat moje* | tr 'a-z' 'A-Z' | uniq | awk –f konwersja.awk | wc

W jaki sposób można przechwycić dane przekazywane z polecenia uniq do awk bez przerywania potoku?

Rozwiązanie

Rozwiązanie polega na zastosowaniu mechanizmu rozgałęziania potoku. W powłoce bash rozdzielenie strumienia wyjściowego na dwa identyczne strumienie należy do zadań polecenia tee. Dane jednego strumienia są zapisywane w pliku, a drugiego — przekazywane do standardowego strumienia wyjściowego, co pozwala na dostarczenie ich do kolejnego polecenia potoku.

Jeżeli chcemy więc prześledzić działanie długiego ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required