数字提取

数字提取

例如,有一字符串为"/home/liuzh/qc/ncfiles/R5900019_traj.nc",
请问如何把5900019这7个数字提取出来。      
复制内容到剪贴板
代码:
$ echo "/home/liuzh/qc/ncfiles/R5900019_traj.nc" | grep -o '[0-9]\+'
      
谢谢!但如果文件名为R5900019_001.nc,如何把5900019提取出来?      
请准确的描述一下你的文件名的格式, 并且说明你需要提取哪部分      
路径和文件名为"/home/liuzh/qc/ncfiles/5900019_traj.nc"或 "/home/liuzh/qc/ncfiles/R5900019_002.nc",
我相把5900019这7个数字提取出来,我现在用awk加if判断,比较麻烦。      
复制内容到剪贴板
代码:
$ echo "/home/liuzh/qc/ncfiles/R5900019_002.nc" | grep -o '[0-9]\{7\}'
      
[QUOTE=dearvoid]
复制内容到剪贴板
代码:
$ echo "/home/liuzh/qc/ncfiles/R5900019_002.nc" | grep -o '[0-9]\{7\}'
[/QUOTE]

谢谢,已经好了。先前我用[0-9]{7}为什么不行?      
复制内容到剪贴板
代码:
$ echo "/home/liuzh/qc/ncfiles/R5900019_002.nc" | grep -Eo '[0-9]{7}'
      
1.我的redhat 上没有grep的 -o 选项啊?
2.echo "/home/liuzh/qc/ncfiles/R5900019_traj.nc" | grep -o '[0-9]\+' 中最后的\+是匹配任意多个[0-9]吗?      
1. I know redhat 8's grep has '-o' option

2. '\+' means matching one or more characters