особый случай, когда сортировка и объединение не работают

Поскольку все контейнеры работают на одном и том же демоне docker, вы не можете сопоставить тома dind первого уровня. Вы должны сопоставить тома с путями хоста.

Дайте объемы второго уровня не как -v /var/mydata/someproject:/var/mydata, а как-v /home/user/theDockerThing/someproject:/var/mydata

0
20.04.2020, 10:56
1 ответ

Необходимо использовать соответствующие параметры и региональные настройки для joinи sort. Если вы укажете joinиспользовать поля, разделенные табуляцией -, вам также нужно указать sortиспользовать поля, разделенные табуляцией -(, по умолчанию это разделяемые пробелами -).

Установка переменной среды LANGможет установить или не установить настройку локали LC_COLLATE:, если среда LC_COLLATEустановлена, она имеет приоритет над LANG, а если переменная среды LC_ALLset, он устанавливает все настройки локали. См. установите 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
1
19.03.2021, 02:27

Теги

Похожие вопросы