Więc jeśli chcesz użyć danych wyjściowych lsjako danych wejściowych do dwóch różnych grepprogramów, zapisz dane wyjściowe każdego z nich grepdo różnych plików i prześlij wszystkie wyniki less, spróbuj:
ls -A | tee >(grep ^[.]> hidden-files)>(grep -v ^[.]> normal-files)| less
Wyniki ls -Abędą „przesyłane” do obu greps. Plik hidden-filesbędzie miał zawartość z wyjścia pierwszego grepi normal-filesbędzie miał wyniki drugiego grep. Wszystkie pliki zostaną wyświetlone na stronie less.EDIT : co widać lessto dokładnie taki sam wyjściowy z ls -A, a nie wynikiem greps. Jeśli chcesz zmodyfikować dane wyjściowe z ls -Ana less(np. Zamieniając kolejność, aby normalne pliki były wyświetlane przed plikami ukrytymi), spróbuj tego:
ls -A | tee >(grep ^[.])>(grep -v ^[.])>/dev/null | less
Bez >/dev/nulltego wyjście greps byłoby dołączone do wyjścia ls -Azamiast go zastępować.
Spowoduje to wysłanie wyniku polecenia grep zarówno do terminala, jak i do wc (którego wyjście z kolei zostanie przekierowane do pliku grepresult).
„Tee” wyjaśniono w tee ( Wikipedia) w artykule w Wikipedii . Centralne to: „Polecenie tee odczytuje standardowe dane wejściowe, a następnie zapisuje ich zawartość na standardowe dane wyjściowe i jednocześnie kopiuje je do określonych plików lub zmiennych.”.
Odpowiedzi:
Wygląda na to, że
tee
polecenie zrobi to, co chcesz.Kluczem jest użycie
do podstawienia procesu . Przy
tee
użyciu następującego wzoru:Więc jeśli chcesz użyć danych wyjściowych
ls
jako danych wejściowych do dwóch różnychgrep
programów, zapisz dane wyjściowe każdego z nichgrep
do różnych plików i prześlij wszystkie wynikiless
, spróbuj:Wyniki
ls -A
będą „przesyłane” do obugrep
s. Plikhidden-files
będzie miał zawartość z wyjścia pierwszegogrep
inormal-files
będzie miał wyniki drugiegogrep
.Wszystkie pliki zostaną wyświetlone na stronieEDIT : co widaćless
.less
to dokładnie taki sam wyjściowy zls -A
, a nie wynikiemgrep
s. Jeśli chcesz zmodyfikować dane wyjściowe zls -A
naless
(np. Zamieniając kolejność, aby normalne pliki były wyświetlane przed plikami ukrytymi), spróbuj tego:Bez
>/dev/null
tego wyjściegrep
s byłoby dołączone do wyjścials -A
zamiast go zastępować.źródło
źródło
Użyj „tee”.
Przykład:
Spowoduje to wysłanie wyniku polecenia grep zarówno do terminala, jak i do wc (którego wyjście z kolei zostanie przekierowane do pliku grepresult).
„Tee” wyjaśniono w tee ( Wikipedia) w artykule w Wikipedii . Centralne to: „Polecenie tee odczytuje standardowe dane wejściowe, a następnie zapisuje ich zawartość na standardowe dane wyjściowe i jednocześnie kopiuje je do określonych plików lub zmiennych.”.
źródło