Предполагая, что каталоги не являются вложенными, выполните цикл по каталогам и проверьте наличие файла в каждом каталоге.
for d in */; do
if ! [ -e "$d/20190916.file.gz" ]; then
echo "Missing $d/20190916.file.gz"
fi
done
Вы можете зациклить все поля каждой строки. Проверка того, является ли поле числовым значением($i+0==$i
)и (&&
), если оно содержит символ e
, кажется хорошей. Поэтому мы изменяем только эти поля на десятичные числа.
Здесь используется функция GNU awk sprintf
:
awk '{
for (i=1;i<=NF;i++) if ($i+0 == $i && $i ~ /e/) $i = sprintf("%.10f", $i)
} 1' file
.10f
. 1
в конце означает действие по умолчанию, до print
строки.