我们要在文本中搜索出来以负数开头的数字的范围,类似 -12-12,-9-100,为此我们写下如下正则表达式:
$ egrep -o "-[0-9]{1,3}" range.txt
grep: unknown option -- [
Usage: grep [OPTION]... PATTERN [FILE]...
Try 'grep --help' for more information.
明明我只写了一个-,为何报错说两个--,问了deepseek,把egrep环境grep也不行
$ grep -oE "-[0-9]{1,3}" range.txt
grep: unknown option -- [
Usage: grep [OPTION]... PATTERN [FILE]...
Try 'grep --help' for more information.
按deepseek说的双引号变单引号也不行
$ grep -oE '-[0-9]{1,3}-' range.txt
grep: unknown option -- [
Usage: grep [OPTION]... PATTERN [FILE]...
Try 'grep --help' for more information.
依据经验尝试了转义,先转换前面的
$ grep -oE "\-[0-9]{1,3}" range.txt
-100
-16
-100
-100
-1
-100
.......
结果果然可以,于是这样写,确认OK。应该是-与[0-9]之间的要有所区分
$ grep -oE "\-[0-9]{1,3}\-" range.txt
-12-
-11-