数字で始まり数字で終わり、1〜6 文字で構成される行を一致させるにはどうすればよいでしょうか?

数字で始まり数字で終わり、1〜6 文字で構成される行を一致させるにはどうすればよいでしょうか?

次のファイルがあります:

$ cat numbers
a1
12
12345
123456
19816282
1@$%6

私が使用しているgrep "^[0-9]\{1,6\}$" numbersのは、次のような結果です。

12
12345

私も1@$%6その結果に期待しています。

答え1

結果は実際には

12
12345
123456

正規表現は「1~6桁の数字のみで構成される行」なので1@$%6一致しません。

答え2

> grep "[0-9]\{1,6\}" numbers.txt
1
12
12345
123456
19816282
1@$%6

関連情報