请教高手一个grep表达式的问题

本帖最后由 karlzheng_cu 于 2011-05-31 10:52 编辑

我有一个内容如下:
  1. abc
  2. 123
  3. 123ABC123
  4.     123
  5.         123.132
  6. 123.
  7. 123A
  8. def123
复制代码
想用grep查找文件中由 开头是空白字符或数字,后面是数字和'.' 三种字符组成的行;
请问grep正则表达式怎么写?

作者: karlzheng_cu   发布时间: 2011-05-31

回复 karlzheng_cu


    grep '^[ |0-9][0-9]\.'

作者: pcuer   发布时间: 2011-05-31

回复 pcuer



QUOTE:
grep '^[ |0-9][0-9]\.'



    误人子弟

作者: xiaopan3322   发布时间: 2011-05-31

本帖最后由 xiaopan3322 于 2011-05-31 11:19 编辑

先把问题描述清楚!!!
说简单的,你想要什么输出?

我猜你要这种:
  1. [11:13:40-Bob@hzling20:~/test]-(1051)No.40->$ cat urfile
  2. abc
  3. 123
  4. 123ABC123
  5.     123
  6.         123.132
  7. 123.
  8. 123A
  9. def123
  10. [11:13:48-Bob@hzling20:~/test]-(1052)No.41->$ grep -E '^[ 0-9]+[0-9]+\.' urfile
  11.         123.132
  12. 123.
复制代码

作者: xiaopan3322   发布时间: 2011-05-31

回复 xiaopan3322


    他说的开头是或
开头是空白字符或数字,后面是数字和'.' 三种字符组成的行

后面他也没说多个数字呀,你就+

作者: pcuer   发布时间: 2011-05-31

回复 pcuer


    我理解不行

    你去翻翻字典,查“组成”两字的意思

作者: xiaopan3322   发布时间: 2011-05-31

egrep "^[ 0-9]|[0-9.]$"

作者: mercuyr   发布时间: 2011-05-31

回复 xiaopan3322


    grep -E '^[ 0-9]+[0-9]+\.'

那为什么.不用+呢

作者: pcuer   发布时间: 2011-05-31



QUOTE:
先把问题描述清楚!!!
说简单的,你想要什么输出?

我猜你要这种:
xiaopan3322 发表于 2011-05-31 11:17



不是,要输出下面这几个:
  1. 123
  2.      123
  3.          123.132
  4. 123.
复制代码

作者: karlzheng_cu   发布时间: 2011-05-31

回复 karlzheng_cu


    try:
  1. grep -Po '^[ 0-9]+[0-9.]*$'
复制代码

作者: yinyuemi   发布时间: 2011-05-31