файлы соединения с пронумерованным индексом

Вы могли, использовал принудительную команду, если пользователи могут только соединиться через ssh. По существу, каждый раз, когда пользователь соединяется через ssh с определенным ключом и определенным именем пользователя, Вы вынуждаете его выполнить команду (или сценарий, или) Вы определили в .ssh/authorized_keys. Будут проигнорированы команды, данные пользователями.

Например:

# in .ssh/authorized_keys
command="cd /foo/bar && /path/to/scripts/my_script.sh arg1 arg2",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-rsa public_key

3
26.09.2015, 19:20
2 ответа

Я предполагаю, что Ваши большие файлы уже отсортированы. Следующий метод не требует никакой дальнейшей сортировки.

Можно просто добавить начальные нули к ключам, с помощью 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
3
27.01.2020, 21:20

Можно отсортировать входные файлы, вид численно вывод:

join -a1 -11 <(sort -k1,1 file1) <(sort -k1,1 file2) | sort -k1,1n
1
27.01.2020, 21:20

Теги

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