Вы можете использовать цикл while, который получает подстановку find через процесс:
d=0
while IFS= read -r file
do
[ "$d" -ge 1 ] && tail -n +2 "$file" || cat "$file"
(( d ++ ))
done < <(find "/dir/folder" name *.dat)
Таким образом, он будет выполнять cat в первом совпадении, а tail -n +2 -
Кроме того, если у вас есть все файлы в одном каталоге, вы можете сказать:
awk 'FNR>1 || NR==1' files*
Это будет соответствовать всем, кроме случая когда FNR==1 и NR>1, то есть все, кроме заголовка файлов после первого. Зачем? Поскольку NR содержит число строк, считанных в целом, тогда как FNR содержит количество строк текущего файла, который читается.