Не совсем понятно, что вы подразумеваете под «группой» или «процессом», но, надеюсь, по крайней мере, это может подтолкнуть вас в правильном направлении.
Если в ваших группах нет пустых строк, добавьте разделитель между ними; затем переберите последовательности между пустыми строками. Ваш скрипт Awk уже, кажется, ставит пустую строку, когда заканчивает группу, поэтому вы можете просто
awk '/__libc_memalign/ {p=1; print; next}
/:/ && p {p=0; print} p' file1.out |
while true; do
while read -r line; do
case $line in '') break;; esac
echo "$line"
done |
# Pipe the collected group into "process
process
done
Это довольно неуклюже и, вероятно, может быть значительно переработано. Если вам не нужны промежуточные результаты, может быть просто
awk '/__libc_memalign/ {
p=1; cmd = "process" print | cmd; next}
/:/ && p { p=0; close(cmd) }
p { print | cmd }' file1.out