2015-09-30 30 views
1

正在写在外壳脚本增加的数量和我有这样的一个变量 -Perl或壳 - 获取从字符串变量的数目和1

$ grep A41A41 file 
A41A41 06 

我希望到grep一个特定的字符串组合如上所示,并将与该字符串关联的数字(在2个空格后的同一行中)增加1.然后保留文件的其余部分(文件将有大约800行)。 09应该成为10和99应该成为01 此外,A41A41将是一个变量,在循环这个变量的值将在每次迭代 改变我做这一切在for循环中,所以我还需要考虑增量性能。

感谢您解决此问题的帮助。

+0

凡任何变量? – choroba

+0

你确定'99' + 1应该变成'01'而不是'00'吗? –

+0

A41A41将是一个变量,并且在for循环中这个变量的值会在每次迭代中改变。 – Keyur

回答

2

现在还不清楚09年会发生什么 - 它应该变成10还是010?

在Perl前者:

perl -i~ -pe 's/(A41A41\s+)([0-9]+)/sprintf "%s%02d", $1, $2 + 1/e' file 

要获得99 - > 01的过渡,使用

($2 + 1) % 99 || 99 
+0

谢谢,09应该变成10,而99应该变成01. – Keyur

+0

是的,Walter。 99 + 1应该变成01. – Keyur

+0

Jens,我试过了,grep - >在一个变量中存储数字 - >增量 - >重写。 但考虑到800次迭代,这是非常缓慢的,我不认为这是正确的做法。 – Keyur

相关问题