2015-09-30 63 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

相關問題