#! /bin/bash shopt -s extglob packet_size=1280 packets_per_dataset=50 rm -f roof_test.raw for packet in $(seq 0 24); do for id in $(seq 1 16); do name=$(ls -- *$id.@(fx|dat) | grep -P "_0?$id\.\w+") echo "Appending packet $packet from $name " dd if=$name of="roof_test.raw" bs=$packet_size count=$packets_per_dataset skip=$((packet * $packets_per_dataset)) oflag=append conv=notrunc status=none done done