У меня есть файл, в котором я бы хотел сравнить, если каждый набор из 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 строки, но иногда есть другой, который мне нужно поймать.
Если числа совпадают , выводят какое-то сообщение. Если какой-либо из этих чисел не соответствует, выведите его в файл .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
Это должно сделать трюк:
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