Я предполагаю, что Ваши большие файлы уже отсортированы. Следующий метод не требует никакой дальнейшей сортировки.
Можно просто добавить начальные нули к ключам, с помощью sed
... Поскольку процесс является конвейерным, нет никаких временных файлов для контакта с. sed
наверху это тривиальный.
# make key 9 digits # Add 9 leading 0's # Remove excess 0's
join -a1 -11 <(sed -r 's/^([0-9]+)/000000000\1/; s/^0+([0-9]{9})/\1/' file1) \
<(sed -r 's/^([0-9]+)/000000000\1/; s/^0+([0-9]{9})/\1/' file2)
Вывод:
000000001 lkj klj lkj
000000002 lkj lkj lkj
000000003
000000004
000000005
000000006
000000007 lkj lkj lkj
000000008
000000009
000000010
000000011 lkk kll lkk
Если Вы не хотите начальные нули в выводе, используйте эту команду вместо этого.
Дополнительное sed -r 's/^0+//'
удаляет начальные нули.
join -a1 -11 <(sed -r 's/^([0-9]+)/000000000\1/;s/^0+([0-9]{9})/\1/' file1) \
<(sed -r 's/^([0-9]+)/000000000\1/;s/^0+([0-9]{9})/\1/' file2) |
sed -r 's/^0+//'
Вывод
1 lkj klj lkj
2 lkj lkj lkj
3
4
5
6
7 lkj lkj lkj
8
9
10
11 lkk kll lkk
Эта строка является Вашей проблемой
/# do not bell on tab-completion
Если я добавляю, что строка к моей рабочей конфигурации, разрежьте работу остановок.
Единственная подсказка, которую я могу найти об этом, находится в readline странице справочника:
Пустые строки проигнорированы. Строки, начинающиеся с #, являются комментариями. Строки, начинающиеся с $, указывают на условные конструкции. Другие строки обозначают привязки клавиш и переменные настройки.
Так как это не пустая строка и не начинается #
или $
, это нужно рассматривать как привязку клавиш.
Программа, названная xmodmap, может использоваться для изменения контурных карт. Посмотрите man xmodmap
если это уже установлено.
Короче говоря используйте xev
видеть детали приблизительно X событий. Разожгите это и ударьте Ваш / ключ. На моей установке это - результат, который я получаю:
KeyRelease event, serial 34, synthetic NO, window 0x4e00001,
root 0x15a, subw 0x0, time 107752919, (784,828), root:(789,850),
state 0x10, keycode 61 (keysym 0x2f, slash), same_screen YES,
XLookupString gives 1 bytes: (2f) "/"
XFilterEvent returns: False
Затем на удаленной машине использовать xmodmap -e 'keycode [KEYCODE] = [KEYSYM]
создать отображение, где [КОД КЛАВИШИ] и [KEYSYM] значения, полученные от xev. Попытайтесь установить значение по умолчанию 61,0x2f сначала, чтобы видеть, должно ли оно просто быть сброшено. (т.е. xmodmap -e 'keycode 61 = 0x2f'
)
Если это - остановка, попытайтесь отобразить другой ключ. Например, я попробовал код клавиши 105 (правильное управление) к 0x2f. Это работало локально и на ssh сессии для меня.
Править:
Можно также хотеть установить вопросительный знак. Расширьте предыдущую команду до xmodmap -e 'keycode 61 = 0x2f 0x3f
'. Вы видите полный список keysyms здесь.