Два вопроса по использованию команды uniq
, помогите пожалуйста.
Первый вопрос
Скажем, у меня есть два файла;
$ cat 1.dat
0.1 1.23
0.2 1.45
0.3 1.67
$ cat 2.dat
0.3 1.67
0.4 1.78
0.5 1.89
Используя cat 1.dat 2.dat | sort -n | uniq > 3.dat
, я могу объединить два файла в один. результаты:
0.1 1.23
0.2 1.45
0.3 1.67
0.4 1.78
0.5 1.89
Но если у меня есть научная запись в файле 1.dat
,
$ cat 1.dat
1e-1 1.23
0.2 1.45
0.3 1.67
результат будет:
0.2 1.45
0.3 1.67
0.4 1.78
0.5 1.89
1e-1 1.23
это не то, чего я хочу, как я могу дать uniq
понять, что 1e-1
— это число, а не строка.
Второй вопрос
То же, что и выше, но на этот раз пусть первая строка второго файла 2.dat
будет немного другой (от 0.3 1.67
до 0.3 1.57
).
$ cat 2.dat
0.3 1.57
0.4 1.78
0.5 1.89
Тогда результат будет:
0.1 1.23
0.2 1.45
0.3 1.67
0.3 1.57
0.4 1.78
0.5 1.89
Мой вопрос в том, как я мог использовать uniq
только на основе значения из первого файла и найти повторение только из первого столбца, чтобы результаты были такими же:
0.1 1.23
0.2 1.45
0.3 1.67
0.4 1.78
0.5 1.89
Спасибо
Более сложные тестовые случаи
$ cat 1.dat
1e-6 -1.23
0.2 -1.45
110.7 1.55
0.3 1.67e-3