xargs
to najbardziej elastyczne rozwiązanie do dzielenia danych wyjściowych na argumenty poleceń.
Jest również bardzo czytelny dla ludzi i łatwy w użyciu ze względu na prostą parametryzację.
Format to xargs -n $NUMLINES mycommand
.
Na przykład, aby echo
każda pojedyncza linia w pliku /tmp/tmp.txt
chcesz zrobić:
cat /tmp/tmp.txt | xargs -n 1 echo
lub w celu diff
każda kolejna para plików wymienionych jako linie w pliku powyższej nazwy zrobiłbyś :
cat /tmp/tmp.txt | xargs -n 2 diff
-n 2
instruuje xargs
konsumować i przekazać odsunięte dwie linie, co już rurami do niego w danej chwili.
Można dostosować xargs
, aby podzielić na ogranicznikach oprócz powrotu karetki/nowej linii.
Użyj man xargs
i google, aby dowiedzieć się więcej o sile tego wszechstronnego narzędzia.
+1 za uniknięcie bezużytecznego użycia 'cat'. –
+1 dla dostępności zmiennych poza pętlą – former
+1 dla rury w pętli while. Chciałbym jednak zwrócić uwagę widzów oglądających, że można po prostu zadzwonić "podczas czytania; zrobić ', aby użyć wbudowanej zmiennej * ODPOWIEDŹ *. –