Рассмотрим следующее использование xargs
:
echo Alice Bob Carol | xargs -n1 echo
Это производит три заявления эха как это
echo Alice
echo Bob
echo Carol
Рассмотрим это модифицированное использование xargs
:
echo Alice Bob Carol | xargs -n1 -I% echo Hello, %. How are you?
Он производит одно эхо-выражение вместо желаемых трех:
echo Hello, Alice Bob Carol. How are you?
Это потому, что -I
изменяет способ разделения входного потока в соответствии с man-страницей:
пробелы без кавычек не заканчивают вводимые элементы; вместо этого разделитель является символом новой строки
Можно ли сохранить разделитель пространства при использовании техники замены?
Лучшее, что я придумал, это использование -d
для указания разделителя пробелов, есть ли лучший способ?
echo -n Alice Bob Carol | xargs -n1 -I% -d\ echo Hello, %. How are you?