Усеченный результат, возвращаемый 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 
  • Как прочитать файл свойств через мой скрипт?
  • Удалить строки, начинающиеся с #
  • Добавить кавычки и новый разделитель вокруг слов, разделенных пробелами
  • Необходимо вставить одинарные кавычки в текстовый файл для использования в качестве SQL-запроса с помощью sed
  • Извлечь третью группу текста из разделителей диапазонов
  • Получить строку запроса из URL-адресов в файле журнала
  • Есть ли более быстрый способ получить этот выходной файл в Linux?
  • Свернуть несколько повторяющихся частей последовательных строк
  • Как добавить верхний и нижний колонтитулы в плоский файл
  • Bash перебирает список строк
  • sed снятие комментариев в строке
  • «Скобки не сбалансированы», хотя я избежал этого?
  • Linux и Unix - лучшая ОС в мире.