sed/awk - 更新文件中的字符

dop*_*ner 1 bash awk sed

我有一个文本文件,其中有5列用逗号分隔,如下所示

449,615,43,57,8
308,617,43,57,3
345,558,43,57,11
Run Code Online (Sandbox Code Playgroud)

但是,在生成这些文件的代码中发现了一个错误,现在我需要更新文件的最后一列

if i > 10 i = i + 1 else i

我从来没有使用过awk和sed,但我觉得使用这些工具应该是微不足道的.任何人都可以给我一些指示吗?谢谢

编辑:上面的预期输出:

449,615,43,57,8
308,617,43,57,3
345,558,43,57,12
Run Code Online (Sandbox Code Playgroud)

jay*_*ngh 5

使用awk:

awk 'BEGIN{FS=OFS=","}{$NF=($NF>10?$NF+1:$NF)}1' file
Run Code Online (Sandbox Code Playgroud)

$ cat file
449,615,43,57,8
308,617,43,57,3
345,558,43,57,11
$ awk 'BEGIN{FS=OFS=","}{$NF=($NF>10?$NF+1:$NF)}1' file
449,615,43,57,8
308,617,43,57,3
345,558,43,57,12
Run Code Online (Sandbox Code Playgroud)

可以按照评论中anubhava的建议减少:

$ awk 'BEGIN{FS=OFS=","} $NF>10{$NF++} 1' file
449,615,43,57,8
308,617,43,57,3
345,558,43,57,12
Run Code Online (Sandbox Code Playgroud)