Усеченный результат, возвращаемый 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= 

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

One Solution collect form web for “Усеченный результат, возвращаемый JOIN”

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

 sed -i 's/\r$//' {1,2}.txt 
  • Сценарий для извлечения выбранных записей из файла bibtex
  • Как заполнить конечные теги с помощью sed, awk или любой другой команды?
  • Катить все файлы в папке, включая имя файла, используя цикл for?
  • Как преобразовать данные с разделителями табуляции в данные с разделителями-запятыми?
  • Конкретная замена уровня столбца
  • sed предотвращает удаление остальной линии
  • Извлечение нескольких экземпляров текста между двумя словами, включая стартовое слово, но исключающее слово
  • Создание файлов из шаблонов, замещение в середине других слов
  • чтение ввода в sed
  • Почему эта команда xargs не работает?
  • Проблема удаления / замены специального символа °
  • Linux и Unix - лучшая ОС в мире.