如何使用sed或类似工具为文件中的每个数字添加1?

时间:2016-03-04 06:00:21

标签: regex sed

我有一个看起来像这样的文件:

9   3                                       16  2       
10      17                                              
11  R-C R-C                 R-C R-C                     

我想用'number + 1'替换每个数字'number'

比如说,9 - > 10,2 - > 3,17 - > 18等等。

我知道你可以用\ 1来记住sed中的模式。但不知道如何添加1。

1 个答案:

答案 0 :(得分:2)

试试这个awk命令:

awk '{for(i=1;i<=NF;i++){if(match($i,/^[0-9]+$/)){$i+=1}}print}' input.txt

结果是:

10 4 17 3
11 18
12 R-C R-C R-C R-C

如果您需要保留这些空格,请在vim

中运行此命令
:%s/[0-9]\+/\=submatch(0)+1/g

结果是:

10   4                                       17  3
11      18
12  R-C R-C                 R-C R-C