Вы можете использовать команду:
awk -F'[-|]' -v date="20190405" '$1 == date && $2>180000 && $2<192000' file_name | grep "End success file transfer /app/reception/FILENAME.dat to HOSTX"
Вывод команды awk
будет:
20190405 - 180050 | INFO | FILE_SEND.sh | | FILENAME.dat | 1800498307000 | End success file transfer /app/reception/FILENAME.dat to HOSTX
С использованием переменной даты:
awk -F'[-|]' -v date="$(date +%Y%m%d)" '$1 == date && $2>180000 && $2<192000' filename
Возможно, вы могли бы использовать
awk 'NR > 1 { maf = ($1 > 0.5 ? 1 - $1 : $1); print maf }' file
или просто
awk 'NR > 1 { print ($1 > 0.5 ? 1 - $1 : $1) }' file
Или, используя вычисление минимума $1
и 1 - $1
(, вawk
):
min()
awk 'NR > 1 { print ($1 < 1 - $1 ? $1 : 1 - $1) }' file
Выражение ($1 > 0.5 ? 1 - $1 : $1)
приведет к 1 - $1
, если $1 > 0.5
, иначе оно приведет к $1
. Точно так же ($1 < 1 - $1 ? $1 : 1 - $1)
приведет к $1
, если $1 < 1 - $1
является истинным , и в 1 - $1
в противном случае.
Для заданных данных это даст
0.0044
0.0018
0.3920