给定文件:
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。
你可以用 grep 来做:
grep -o '[0-9]\+\b' test.text
sed 's#[^0-9]\+\([0-9]\+\).*#\1#' INPUTFILE
将为您提供示例行所需的输出。它在输入行中搜索第一组数字字符,并仅打印它们。
% 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