ファイルから 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

長さがゼロの数字 (つまり、空行) も削除するように要求しました。

関連情報