UNIX正则表达式,用于根据索引位置从字符串中提取字段

时间:2011-07-12 11:33:29

标签: regex unix

  

可能重复:
  Need a Regular expression to extract 5th to 8th charactors in a string.

我有一个数字值的字符串,例如:14150712.M;我需要从索引位置5到8中提取数字。例如:0712如何从FileName中删除Ist四个数字并删除接下来的四个数字?

3 个答案:

答案 0 :(得分:1)

echo "14150712.M" | cut -c5-8

答案 1 :(得分:1)

试试这个正则表达式:

/\d{4}(\d{4})/

所需数据将在括号内匹配

答案 2 :(得分:0)

如果位置是固定的,你可以使用Bash的子串参数扩展:

 A="ABCDE"; echo ${A:1:2}

这会打印BC。例如,您可以在for A in *; do循环中使用它:

for A in *.M; do
    NUMID=${A:4:4}
    echo "We extracted \"${NUMID}\" from \"${A}\"."
done