Измените свои репозитории на:
deb http://http.kali.org/kali kali main contrib non-free
deb http://security.kali.org/kali-security kali / обновляет main contrib non-free
Затем я бы порекомендовал просто использовать gedit, который находится в репозиториях; в противном случае вам следует собрать notepadqq из исходного кода ::
$ git clone https://github.com/notepadqq/notepadqq.git
$ cd notepadqq
notepadqq $ ./configure --prefix / usr
notepadqq $ make
notepadqq $ sudo make install
С этим входным образцом:
$ cat infile
2 0.9000 value 1
3 23 value 2
4 value 3
5 1 value 4
6 2 value 5
7 5 value 6
8 value 7
9 -0.9000 value 8
10 -23 value 9
11 value 10
12 -1 value 11
13 -2 value 12
14 -5 value 13
Используйте эту команду:
$ sort -k 3n,3n -k 2g,2g infile
Что приводит к этому результату:
10 -23 value 9
14 -5 value 13
13 -2 value 12
12 -1 value 11
9 -0.9000 value 8
2 0.9000 value 1
5 1 value 4
6 2 value 5
7 5 value 6
3 23 value 2
4 value 3
8 value 7
11 value 10
Это отличается от ответа Expected output
тем, что строка 11 value 10
идет в самом конце, а не перед строкой 4 value 3
. Пожалуйста, обновите вопрос, если есть причина для заказа 11 < 4 < 8
или 10 < 3 < 7
или если это больше связано с проблемой, чем предполагает образец данных.
sort -g input.data | grep [0-9] && grep -v [0-9] input.data
Вы можете направить результат через соответствующий -постпроцессор. Вот один, который я написал в sed:
#!/bin/sed -f
# Move any null into hold space
/^$/{
H
d
}
# Insert nulls after last line
$G
# Delete an extra newline this introduces
$s/\n//
Если ваш sort
действительно пишет <NULL>
, а не пустую строку, вам нужно изменить шаблон /^$/
на /^<NULL>$/
.
sort -g <<EOF |./475768.sed
0.9000
23
1
2
5
-0.9000
-23
-1
-2
-5
EOF
-23
-5
-2
-1
-0.9000
0.9000
1
2
5
23