Как удалить из файла только числа длиной от 0 до 9 символов?

Как удалить из файла только числа длиной от 0 до 9 символов?

Как можно удалить из файла только те числа, которые имеют длину 0,1,2,3,4,5,6,7,8,9 символов? Я имею в виду строки, которые соответствуют этому шаблону.

Пример для удаляемых линий:

cat input.txt
1
123423113
8372
8472323

Пример строк, которые не следует удалять:

cat input.txt
1a
1245d45
8565438753
b39592
3827495Hx

решение1

С использованием sed:

sed -i.bak -e '/^[0-9]\{1,9\}$/d' file

С использованием perl:

perl -i.bak -nle 'print unless /^[0-9]{1,9}$/' file

решение2

perl -i.bak -nle 'print unless /^[0-9]{0,9}$/' file

Вы просили также удалить числа нулевой длины (т.е. пустые строки).

Связанный контент