У меня есть файл, в котором есть числа, начинающиеся с
00000000
00000001
00000002
.
.
.
99999999
Я хочу отфильтровать его в bash так, чтобы вывод был таким:
00000000
00000011
00000022
.
.
11223344
11223355
.
.
99999977
99999988
99999999
решение1
Похоже, вы действительно хотитефильтрфайл, а не сортировать его - в частности, выводить только те строки, которые полностью состоят из пар повторяющихся символов или (точнее) цифр. Так, например, используя grep
, что-то вроде
grep -Ex '((.)\2)+' yourfile
или использование режима PCRE для избежания захвата внешней группы
grep -Px '(?:(\d)\1)+' yourfile
решение2
Предполагая, что все ваши числа состоят из восьми цифр и находятся в файле с именем nums.txt, вы можете использовать строковую функцию awk substr для фильтрации всех строк, последние два символа которых одинаковы:
awk '{ if(substr($1, 7, 1)==substr($1, 8, 1)) print $1}' nums.txt
После этого вы получаете:
00000000
00000011
00000022
00000055
....