如何从unix中的方括号中提取数字

时间:2016-07-29 13:01:57

标签: awk sed

我有一个包含以下内容的文件。

abc.[1-3].title
simple.0[1-2].title

我需要帮助才能使用 sed awk 命令获取输出,如下所示。

abc.1.title
abc.2.title
abc.3.title
simple.01.title
simple.02.title

1 个答案:

答案 0 :(得分:3)

sed用于单个行的简单替换,全部。其他任何事情,例如你当前的问题,你应该使用awk:

$ cat tst.awk
BEGIN { FS="[][]" }
{
    split($2,r,/-/)
    for (i=r[1]; i<=r[2]; i++) {
        print $1 i $3
    }
}

$ awk -f tst.awk file
abc.1.title
abc.2.title
abc.3.title
simple.01.title
simple.02.title

阅读Arnold Robbins撰写的有效Awk编程,第4版。