Istnieje kilka poleceń uniksa, które są przeznaczone do działania na dwóch plikach. Zazwyczaj takie polecenia umożliwiają odczytanie zawartości jednego z "plików" ze standardowego wejścia za pomocą pojedynczego myślnika zamiast nazwy pliku.Przekierowywanie dwóch plików na standardowe wejście
Właśnie natknąłem a technique który wydaje się dopuszczać oba pliki mają być czytane ze standardowego wejścia.
comm -12 <(sort file1) <(sort file2)
Moją pierwszą reakcją było niedowierzanie: „To nie powinno działać Standardowe wejście będzie po prostu konkatenację oba pliki .Plik nie będzie w stanie odróżnić plików lub nawet zda sobie sprawę, że nadano mu zawartość dwóch plików. "
Oczywiście ta konstrukcja działa. Przetestowałem to zarówno z comm
i przy użyciu bash 3.2.51 na cygwin 1.7.7. Jestem ciekawy jak i dlaczego to działa:
- Dlaczego to działa?
- Czy to jest rozszerzenie Bash, czy jest to prosta funkcja powłoki Bourne'a?
- Działa to w moim systemie, ale czy ta technika działa na innych platformach? (Innymi słowy, czy skrypty napisane tą techniką będą przenośne?)
To wszystko - zastąpienie procesu! Spędziłem dużo czasu szukając informacji o przekierowaniu, ale miałem po prostu złe imię. –
Dziękuję. To pomogło. Potwierdzony ksh88 (w systemie AIX 7.1) nie obsługuje tego stylu podstawiania procesów. Dziękuję Ganesh za bash. –