Да, awk -v c=2 '{ print $0/c }' test_1
напечатает только первый столбец, так как попытается разделить каждую полную строку с помощью c
. Преобразование строки в одно число отбрасывает все, что не является числом, т.е. первый пробел и все после него.
Вместо этого вам нужно перебирать столбцы:
awk -v c=2 '{ for (i = 1; i <= NF; ++i) $i /= c; print }' OFS='\t' test_1
Этот код просто устанавливает значение каждого столбца равным самому себе, деленному на c
, а затем печатает строку с измененными значениями. NF
— количество полей (столбцов )в текущей строке, а $i
— значение в столбце i
. OFS='\t'
в конце устанавливает разделитель полей вывода на символ табуляции.
Результат для заданных данных будет
0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0
8 10 12 10 10 5 3 14 18 5 13 7 12 12 12 15 12 15 12
1 4 1 2 1 0 0 5 4 1 3 0 3 2 2 3 1 5 1
7 6 11 8 9 5 3 10 14 4 10 7 9 10 10 12 11 10 11
0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0
8 10 12 10 10 5 3 15 18 5 13 7 12 12 12 14 11 15 12
0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Да,Ctrl-C
(т.е. SIGINT )корректно отключает его, согласноhttps://www.infradead.org/openconnect/manual.html#heading5.
Лично я запускаю openconnect в терминале и использую Ctrl-C
для его закрытия; некоторые люди могут предпочесть использовать NetworkManager, systemd -networkd и т. д. для управления соединениями openconnect.