Мне нужно "| xargs -n 1 ", чтобы обойти xargs -I побочный эффект?

Я был удивлен, увидев это:

$ echo 1 2 3 4 5 | xargs -n 1 echo 1 2 3 4 5 $ echo 1 2 3 4 5 | xargs -n 1 -I FOO echo FOO 1 2 3 4 5 

То есть, использование флага -I имеет этот побочный эффект:

Кроме того, некотируемые пробелы не прерывают входные элементы; вместо этого разделитель является символом новой строки.

Поэтому обходной путь, который я вижу, таков:

 $ echo 1 2 3 4 5 | xargs -n 1 | xargs -n 1 -I FOO echo FOO 1 2 3 4 5 

Есть ли лучшее обходное решение?

Моя фактическая строка командной строки выглядит так:

 echo 102DRIFT 103DRIFT 104DRIFT 105DRIFT | xargs -n 1 | xargs -n 1 -I _DIR_ python process.py /SDcard/DCIM/_DIR_/ MyTrace.gpx 10 

(Ubuntu Trusty, если это необходимо).

2 Solutions collect form web for “Мне нужно "| xargs -n 1 ", чтобы обойти xargs -I побочный эффект?”

С GNU xargs вы можете использовать опцию -d :

 $ echo 1 2 3 4 5 | xargs -n 1 -d" " -I FOO echo FOO 1 2 3 4 5 

Я не думаю, что вам нужны xargs вообще:

 for DCIM in /SDcard/DCIM/10[2-5]DRIFT/ do python process.py "$DCIM" MyTrace.gpx 10 done 

Тем не менее, есть еще несколько вещей, которые вы можете сделать, кроме того:

 printf 10%dDRIFT\\n 2 3 4 5 | ...the rest... 

Или, если у вас нет кавычек во входных данных …

 IN | tr \ \\n | xargs ... the rest ... 
  • Передавать аргумент xargs как строку в другую команду с помощью '>'?
  • Почему xargs пропускает первый аргумент при передаче в подоболочку?
  • Как получить код выхода параллельного процесса, запущенного xargs?
  • Найти -exec + vs find | xargs. Какой из них выбрать?
  • Используйте массив bash в качестве списка аргументов в списке (с помощью Midnight Commander)
  • Как создать несколько файлов tar с помощью сценария bash и использовать дату в качестве имен файлов?
  • Xargs с несколькими записями аргументов - используйте аргумент переменной окружения после sh -c '...'
  • Проблемы с find, xargs и egrep
  • Используйте команду grep и найдите
  • Как выполнить команду несколько раз с разными аргументами?
  • Как создать бесконечный поток строк в bash
  • Interesting Posts

    Как настроить what.localhost.dev для разрешения на 127.0.0.1 на Ubuntu 12.04?

    Как получить доступ к sudo после отключения питания (заводская перезагрузка) на моем компьютере?

    как предупреждать о пользовательских квотах пользователя ftp в оболочке / sbin / nologin?

    Требования к сети моста KVM

    Невозможно использовать команду date для изменения определенного формата даты в оболочке Bash на терминале OS X

    Условия внутреннего контура должны зависеть от хода внешнего цикла

    Как отключить все анимации?

    Экран отключает начало длинной команды при доступе через историю bash

    debootstrap от Intel Atom (i686) до AMD Sempron (AMD 64)

    Как отключить автоматическое отключение звука после загрузки в gnome?

    Меню Readline-complete на OS X

    Запуск Emacs через значение переменной bash

    Случайное изображение кнопки SSH изменилось при настройке

    Дублирование жесткого диска

    Удалить всю переменную окружения и загрузить rcfile

    Linux и Unix - лучшая ОС в мире.