Do:
for f in *.cnf; do [[ -f ${f%.*}.dat ]] || echo "$f"; done
Это сухой -запустить; замените echo
на rm
для фактического действия.
для f в * .cnf
выполняет итерацию по файлам .cnf
[[-f $ { f%. *}. dat]]
проверяет, существует ли соответствующий файл .dat
Если нет ( ||
), то распечатайте (или удалите) файл