Поскольку все контейнеры работают на одном и том же демоне docker, вы не можете сопоставить тома dind первого уровня. Вы должны сопоставить тома с путями хоста.
Дайте объемы второго уровня не как -v /var/mydata/someproject:/var/mydata
, а как-v /home/user/theDockerThing/someproject:/var/mydata
Необходимо использовать соответствующие параметры и региональные настройки для join
и sort
. Если вы укажете join
использовать поля, разделенные табуляцией -, вам также нужно указать sort
использовать поля, разделенные табуляцией -(, по умолчанию это разделяемые пробелами -).
Установка переменной среды LANG
может установить или не установить настройку локали LC_COLLATE
:, если среда LC_COLLATE
установлена, она имеет приоритет над LANG
, а если переменная среды LC_ALL
set, он устанавливает все настройки локали. См. установите LC _*, но не LC _ВСЕ
Если вам не требуется сортировка файлов особым -удобным для человека способом, используйте C
языковой стандарт сопоставления, который просто использует порядок байтов. И если вам не нужно, чтобы какой-либо другой параметр локали отличался, установите LC_ALL
, чтобы быть уверенным, что он переопределит любой параметр, унаследованный от остальной части скрипта или от родительского процесса. В любом случае убедитесь, что для join
и sort
используются одни и те же региональные настройки.
LC_ALL=C sort -t $'\t' -k 1b,1 file_1 >file_1.sorted
LC_ALL=C sort -t $'\t' -k 1b,1 file_2 >file_2.sorted
LC_ALL=C join -t $'\t' -a1 file_1.sorted file_2.sorted