Не уверен, почему это было перенесено из StackOverflow. Хотя split
это ответ в стиле суперпользователя, вопрос был о программировании. Например, вот ответ, который реализует то, что вы ищете awk
.
Одним из действительно удобных аспектов awk
является то, как он обрабатывает трубы.
#!/usr/bin/awk -f BEGIN { cmd="/path/to/handler" } { print | cmd } NR % 10 == 0 { close(cmd) }
Ваш cmd
будет вновь открыт, если он будет закрыт ... и будет закрыт каждую 10-ю строку, чтобы открыть следующую строку вывода.
Эффект будет запускаться через handler
каждые 10 строк ввода. В конце файла handler
будет выполняться с оставшимися строками, которые cmd
автоматически закрываются при выходе из awk.
Строго говоря, вам не нужно использовать переменную, например, cmd
для хранения команды ... но это действительно упрощает настройку команды, так как в противном случае вам нужно ОЧЕНЬ внимательно следить за опечатками в вашей close()
.