У меня есть файл, где я хотел бы выдержать сравнение, если каждое множество 4 значений из столбца 2 равно.
Это - часть моего input.txt
файл:
1 493733
2 493733
3 493733
4 493733
1 546328
2 546328
3 546328
4 546328
Мне нужен сценарий для сравнения значений на столбце 2 от первых 4 строк:
1 493733
2 493733
3 493733
4 493733
Затем переход к следующим 4 строкам (... до конца файла - длина могла бы варьироваться):
1 546328
2 546328
3 546328
4 546328
Числа на столбце 2, как предполагается, являются тем же каждые 4 строки, но иногда существует другой, который я должен поймать.
Если числа соответствуют, производят некоторое сообщение. Если какое-либо из тех чисел не соответствует, произведите в a .log
файл, который будет проверен.
Это должно добиться цели:
file="input.txt"
log_file="some.log"
num_lines=$(wc -l < "$file")
for i in `seq 0 $(bc<<<$num_lines/4)`; do
FIRST_LINE=$(bc<<<"$i*4+1")
SECOND_LINE=$(bc<<<"$i*4+2")
if [ "$(awk NR==$FIRST_LINE "$file")" == "$(awk NR==$SECOND_LINE "$file")" ];
then
echo "some kind of message"
else
echo "Lines $FIRST_LINE and $SECOND_LINE do not match" | tee -a "$log_file"
fi
done