Существует вход как:обработки файлов с xargs для параллельности
folder1
folder2
folder3
...
foldern
Я хотел бы перебрать принимать несколько строк сразу и обрабатывает каждую строку, удалить первый/(и больше, но сейчас это достаточно) и эхо. Итерация в bash одним потоком может быть медленной. Альтернативным способом сделать это будет разделение входного файла на N частей и запуск того же скрипта с разными вводами и выводами N раз, в конце вы можете объединить результаты.
Мне было интересно, возможно ли это с помощью xargs.
Update 1:
Вход:
/a/b/c
/d/f/e
/h/i/j
Выход:
mkdir a/b/c
mkdir d/f/e
mkdir h/i/j
Сценарий:
for i in $(<test); do
echo mkdir $(echo $i | sed 's/\///') ;
done
Делать это с xargs не работает, как я бы ожидать:
xargs -a test -I line --max-procs=2 echo mkdir $(echo $line | sed 's/\///')
Очевидно, мне нужен способ выполнения sed на входе для каждой строки, но использование $() не работает.
Вам нужно будет показать, что лучше вы пытаетесь выполнить. Небольшие наборы образцов файлов/данных, за которыми следует ожидаемый результат от этого ввода, значительно облегчат помощь. Удачи – shellter
* ... "и эхо." * 'Echo' что? – tripleee
Вы также должны посмотреть на [Gnu parallel] (http://www.gnu.org/software/parallel/), который помогает работать параллельно. –