У меня возникла проблема с написанием сценария bash и надеждой, что кто-то может мне помочь в этом. Я написал несколько небольших скриптов в bash раньше, поэтому я не совсем новый, но есть еще много возможностей для улучшения.Сценарий Bash для сравнения чисел в столбцах
Итак, у меня есть файл, который содержит только две колонки десятичных чисел, например:
0.46 0.68
0.92 1.36
1.38 2.04
1.84 2.72
2.3 3.4
2.76 4.08
3.22 4.76
3.68 5.44
4.14 6.12
...
То, что я хочу сделать, это сравнить каждое число в первом столбце с каждым номером во втором столбце и проверьте, равны ли какие-либо два числа и напечатайте этот номер, затем на экране или в файле.
Я нашел ответ, как это сделать в таблице excel, но мне было бы действительно интересно, как это сделать в bash или, возможно, с awk.
Первая проблема для меня в том, что я даже не знаю, как бы сравнить первое число со всеми остальными во втором столбце. Я предполагаю, что мне придется делать это через массивы. Я мог бы прочитать два числа командой «while read var_1 var_2», а затем мне пришлось бы каким-то образом добавить var_1 каждой строки в массив_1, то же самое для var_2 для другого array_2, а затем мне как-то придется сравнивать все элементы с каждым Другие.
Но я не знаю, как это сделать. Я надеюсь, что кто-то может мне помочь.
Вы ищете строку или числовое равенство? Я имею в виду, если в столбце 1 появились «2.4», а в столбце 2 - «2.40» - равны или нет? –
@ Эд Мортон: Я ищу числовое равенство, поэтому 2.4 = 2.40. –
Скрипт, который вы выбрали как правильный ответ, не будет работать для вас, поскольку он тестирует равенство строк, поскольку в awk все индексы массива являются строками. –