Czy możliwe jest określenie liczby argumentów, które należy podjąć xargs
bez robienia tego jawnie za pomocą -n
opcji, ale niejawnie za pomocą separatora, tak aby pojedyncze parametry były rozdzielane spacją, ale grupa argumentów pobieranych jednocześnie przez xargs byłaby ograniczona na przykład '\n'
?
Chcę móc przekazać elastyczną liczbę parametrów do skryptu: parametry te są przechowywane na liście takiej jak ta:
param1 param2
param1 param2 param3
param1
Powinno być możliwe przekazywanie jednego wiersza parametrów jednocześnie do skryptu. Nie chcę używać żadnych skryptów proxy i nie chcę zapisywać tymczasowej listy plików ani poleceń na dysku. Chcę odczytać parametry z pliku, zmienić je „w locie” (np. Usunąć każdą inną linię) i przekierować je za pomocą xargs do skryptu docelowego.
Próbowałem użyć '\n'
jako separatora argumentów, ale wszystkie parametry w linii są interpretowane jako jeden argument, nawet jeśli są one rozdzielone spacją.
Odpowiedzi:
Q
ZA
Są jednak łatwiejsze sposoby na osiągnięcie tego wyniku bez użycia xargs, więc możesz wyjaśnić swoje pytanie.
Aktualizacja
Nie sądzę, że xargs jest odpowiedzią na twoje zadanie. Podejrzewam, że lepiej byłoby użyć skryptu zamiast xargs.
źródło
Dzięki GNU Parallel możesz:
Jeśli dopuszczalne jest, aby parametry były połączone jako jeden, możesz nawet zrobić:
Możesz zainstalować GNU Parallel po prostu przez:
Obejrzyj wideo wprowadzające do GNU Parallel, aby dowiedzieć się więcej: https://www.youtube.com/playlist?list=PL284C9FF2488BC6D1
źródło