Удар UNIX - Как сравнить значения из того же столбца?

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

-1
задан 30 January 2018 в 08:53

1 ответ

Это должно добиться цели:

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
0
ответ дан 31 October 2019 в 02:40

Другие вопросы по тегам:

Похожие вопросы: