cat joined.txt | xargs -t -a <(cut --fields=1 | sort -u | grep -E '\S') -I{} --max-args=1 --max-procs=4 echo "mkdir -p imdb/movies/{}; grep '^{}' joined.txt > imdb/movies/{}/movies.txt" | bash
кода, приведенных выше работ, но с заменой избыточную кота в начале кода с перенаправлением, как показано ниже не работает и приводят к выходной ошибке ввода разреза.Невозможно заменить переназначение для резервированной кошки
< joined.txt xargs -t -a <(cut --fields=1 | sort -u | grep -E '\S') -I{} --max-args=1 --max-procs=4 echo "mkdir -p imdb/movies/{}; grep '^{}' joined.txt > imdb/movies/{}/movies.txt" | bash
Существует история к Я пришел к решению, представленному в проблеме. Я пытался сделать содержимое join.txt доступным для grep commmand. Это позволило бы мне поместить xargs в конец конвейера, который производит join.txt (который является файлом 400 Мбайт). Насколько я вижу, mkdir, предшествующий grep, останавливает это от возможного, видите ли вы способ, которым это можно было бы сделать? –
Это не сработает. 'grep', по-видимому, хочет, чтобы полное содержимое того, что' join.txt' будет, но вы будете только кормить части его для каждого 'grep' по мере создания файла. – chepner