Как можно удалить из файла только те числа, которые имеют длину 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
Вы просили также удалить числа нулевой длины (т.е. пустые строки).