Intereting Posts
Является ли Webmin ориентированным на конкретный дистрибутив Linux? Ошибка: TCA_HTB_PAD не объявлен при создании ядра Как сравнить две метки времени? Получение совместной работы VLC и Remmina Ввод пунктуации добавляет акцент на предыдущее письмо после того, как мой ноутбук состыкован в течение нескольких минут Каковы различия между облачными изображениями и закрытыми виртуальными машинами? Пользовательские скрипты kvm для автоматизации прикрепления устройства pci Как удалить данные местоположения GPS из видеофайла MP4? Основная путаница системного журнала шифрование диска cryptsetup «нет ключа с этой парольной фразой» – но пароль известен 100% Запустить сценарий systemd в chroot извне chroot? Как преобразовать диск из ext4 в ext2? Ошибки при вызове веб-службы с использованием команды «Curl» с терминала Unix Улучшить существующий псевдоним для динамической замены текста в командной строке Почему новый каталог имеет жесткое количество ссылок 2, прежде чем что-либо добавится к нему?

Усеченный результат, возвращаемый JOIN

Я использую команду join под linux, но результаты варьируются между разными машинами. У меня есть два простых файла:

cat 1.txt a aaa,0.2 b bbb,0.3 c ccc,0.5 cat 2.txt a aaa,0.2 b bbb,0.3 c ccc,0.6 

Я выполняю следующую команду

 join -a 1 -1 1 -2 1 -t "," -o 1.1' '1.2' '2.2 <(cat 1.txt| sort -t ",") <(cat 2.txt| sort -t ",") 

Результат на машине 1:

 ,0.2a,0.2 ,0.3b,0.3 ,0.6c,0.5 join --version join (GNU coreutils) 8.13 locale LANG=en_US.UTF-8 LANGUAGE=en_US.UTF-8 LC_CTYPE="en_US.UTF-8" LC_NUMERIC="en_US.UTF-8" LC_TIME="en_US.UTF-8" LC_COLLATE="en_US.UTF-8" LC_MONETARY="en_US.UTF-8" LC_MESSAGES="en_US.UTF-8" LC_PAPER="en_US.UTF-8" LC_NAME="en_US.UTF-8" LC_ADDRESS="en_US.UTF-8" LC_TELEPHONE="en_US.UTF-8" LC_MEASUREMENT="en_US.UTF-8" LC_IDENTIFICATION="en_US.UTF-8" LC_ALL=en_US.UTF-8 действия ,0.2a,0.2 ,0.3b,0.3 ,0.6c,0.5 join --version join (GNU coreutils) 8.13 locale LANG=en_US.UTF-8 LANGUAGE=en_US.UTF-8 LC_CTYPE="en_US.UTF-8" LC_NUMERIC="en_US.UTF-8" LC_TIME="en_US.UTF-8" LC_COLLATE="en_US.UTF-8" LC_MONETARY="en_US.UTF-8" LC_MESSAGES="en_US.UTF-8" LC_PAPER="en_US.UTF-8" LC_NAME="en_US.UTF-8" LC_ADDRESS="en_US.UTF-8" LC_TELEPHONE="en_US.UTF-8" LC_MEASUREMENT="en_US.UTF-8" LC_IDENTIFICATION="en_US.UTF-8" LC_ALL=en_US.UTF-8 

Результат на машине 2:

 a aaa,0.2,0.2 b bbb,0.3,0.3 c ccc,0.5,0.6 join --version join (GNU coreutils) 5.97 locale LANG=en_US.UTF-8 LC_CTYPE="en_US.UTF-8" LC_NUMERIC="en_US.UTF-8" LC_TIME="en_US.UTF-8" LC_COLLATE="en_US.UTF-8" LC_MONETARY="en_US.UTF-8" LC_MESSAGES="en_US.UTF-8" LC_PAPER="en_US.UTF-8" LC_NAME="en_US.UTF-8" LC_ADDRESS="en_US.UTF-8" LC_TELEPHONE="en_US.UTF-8" LC_MEASUREMENT="en_US.UTF-8" LC_IDENTIFICATION="en_US.UTF-8" LC_ALL= действия a aaa,0.2,0.2 b bbb,0.3,0.3 c ccc,0.5,0.6 join --version join (GNU coreutils) 5.97 locale LANG=en_US.UTF-8 LC_CTYPE="en_US.UTF-8" LC_NUMERIC="en_US.UTF-8" LC_TIME="en_US.UTF-8" LC_COLLATE="en_US.UTF-8" LC_MONETARY="en_US.UTF-8" LC_MESSAGES="en_US.UTF-8" LC_PAPER="en_US.UTF-8" LC_NAME="en_US.UTF-8" LC_ADDRESS="en_US.UTF-8" LC_TELEPHONE="en_US.UTF-8" LC_MEASUREMENT="en_US.UTF-8" LC_IDENTIFICATION="en_US.UTF-8" LC_ALL= 

Очевидно, что результат на первой машине ошибочен. Он усечен. Я пытался использовать разные настройки языка, но не имел успеха.

Исправьте файлы с помощью dos2unix , или если они не установлены:

 sed -i 's/\r$//' {1,2}.txt