将bash列转换为计数而忽略字符

时间:2017-04-16 19:05:59

标签: bash awk

这有点奇怪,但我试图计算角色的实例" N"在一列中,用当前计数替换每个匹配项,保留其他字符不变。例如:

N
N
-
-
N
-
-
N
N
N

应该成为:

1
2
-
-
3
-
-
4
5
6

似乎无法很好地描述现有答案,感谢您的帮助。

3 个答案:

答案 0 :(得分:4)

for(var i=0;i<req.length;i++)
{
    if(req[i]!==res[i])
    {
        console.log('unmatched element  : '+req[i]+' and '+res[i]);
    }
    else
    {
        continue;
    }
}

输出:

1
2
-
-
3
-
-
4
5
6

答案 1 :(得分:1)

$ awk '{print (/N/?++c:$0)}' file
1
2
-
-
3
-
-
4
5
6

答案 2 :(得分:0)

尝试:(显然基于您显示的示例Input_file)

awk '/^N$/{sub(/N/,++i);}1'   Input_file

因此,检查从字符N开始的行,然后用名为i的变量替换字符N,其值在每次发生替换时增加。然后输入1将打印当前行,然后提及Input_file。