Это не xargs
, который добавляет пробел. Это команда echo
:
Аргументы утилиты echo должны быть разделены одиночными <space>
символами , а символ <newline>
должен следовать за последним аргументом. (Текст из Стандарт Posix ; выделение добавлено.)
Если вы хотите больше контроля, используйте printf
:
...
xargs -r0 -n1 printf "Summarise mapping...\n%s\n" >> ../output.txt
В отличие от printf
автоматически не добавляет символ новой строки в конце, поэтому его необходимо включить в формат.
Обратите внимание, что printf
автоматически интерпретирует escape-последовательность как \n
в строке формата (но не в интерполированных аргументах). В качестве дополнительного бонуса за использование printf
вы можете не указывать параметр -n1
, поскольку printf
автоматически повторяет формат до тех пор, пока не будут использованы все аргументы.