使用正则表达式从多个文件名中检索数字

时间:2013-05-05 05:52:34

标签: regex bash unix

给定文件:

aaabbcc.43.311b.file
ddeeff.x51.311b.file
ffg.1.311b.file
hh.ii.jj.x26.311b.file
ll.m.311.311b.file

如何获取文件名中的数字而不是311b?所以我想得到43,51,1,26和311.

3 个答案:

答案 0 :(得分:1)

你可以用grep:

来做
grep -o '[0-9]\+\b' test.text

答案 1 :(得分:0)

sed 's#[^0-9]\+\([0-9]\+\).*#\1#' INPUTFILE

将为您提供示例行所需的输出。它在输入行中搜索第一组数字字符,并仅打印它们。

答案 2 :(得分:0)

% ls
aaabbcc.43.311b.file   ddeeff.x51.311b.file   ffg.1.311b.file        hh.ii.jj.x26.311b.file ll.m.311.311b.file

% ls|grep -o -P '\d+(?=\.311b\.file)'
43
51
1
26
311