簡體   English   中英

使用Sed / Awk或其他工具/工具遞增值

[英]Incrementing Values Using Sed/Awk or Other Tool/Utility

我想使用sed / awk使數字按順序增加(腳本中有多個數字)。

所以說我有以下代碼:

samplefilename_15.format 
samplefilename_20.format
samplefilename_25.format

看到所有這些如何增加五倍? 有沒有辦法通過sed / awk或其他方法將所有數字(15、20和25)增加5個? 因此,當我運行命令/腳本時,數字變為(20,25,30)。

謝謝你的幫助。

如果您可以自由使用perl

perl -ne 's/(?<=_)(\d+)(?=\.)/($1+5)/e && print' filename

輸出:

samplefilename_20.format
samplefilename_25.format
samplefilename_30.format

要編輯文件:

perl -ne 's/(?<=_)(\d+)(?=\.)/($1+5)/e && print' -i filename

如果您要在同一行上有多個條目,請使用全局修飾符。

perl -ne 's/(?<=_)(\d+)(?=\.)/($1+5)/ge && print' -i filename

使用awk

awk '{
    if(match($0, /_[0-9]+\./)) {
        a = substr($0, 0, RSTART)
        b = 5 + substr($0, RSTART + 1, RLENGTH - 2)
        c = substr($0, RSTART + RLENGTH - 1)
        $0 = a b c }
    print
}'

輸出:

samplefilename_25.format
samplefilename_30.format
samplefilename_35.format

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM