[英]sed/ awk - update characters in file
我有一個文本文件,其中有5列,用逗號隔開,如下所示
449,615,43,57,8
308,617,43,57,3
345,558,43,57,11
但是,在生成這些文件的代碼中發現了一個錯誤,現在我需要更新文件的最后一列 ,以便
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
使用awk
:
awk 'BEGIN{FS=OFS=","}{$NF=($NF>10?$NF+1:$NF)}1' file
$ 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
$ awk 'BEGIN{FS=OFS=","} $NF>10{$NF++} 1' file
449,615,43,57,8
308,617,43,57,3
345,558,43,57,12
單線:
awk -F, -v OFS="," '{$NF+=$NF>10}7'
測試
kent$ echo "449,615,43,57,8
308,617,43,57,3
345,558,43,57,11"|awk -F, -v OFS="," '{$NF+=$NF>10}7'
449,615,43,57,8
308,617,43,57,3
345,558,43,57,12
awk -F, -v OFS="," '{if($5>10)$5=$5+1}1' input.txt
輸出:
449,615,43,57,8
308,617,43,57,3
345,558,43,57,12
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.