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 ...

Get Bash. Receptury now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.