![](/img/trans.png)
[英]Update a line in config file from bash script using sed / awk or other tool
[英]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.