如何使用 sed 或类似工具为文件中的每个数字加 1? [英] How can I add 1 to each numbers in a file using sed or similar tool?

查看:67
本文介绍了如何使用 sed 或类似工具为文件中的每个数字加 1?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I have a file which looks like this :

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

我想用数字+1"替换每个数字数字"

I would like to replace each digit 'number' with 'number + 1'

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

Say for example, 9 -> 10, 2 -> 3, 17 -> 18 and so on.

我知道你可以使用 \1 来记住 sed 中的模式.但不确定如何加 1.

I know that you can use \1 to remember the pattern in sed. But not sure how to add 1 to it.

推荐答案

试试这个 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

这篇关于如何使用 sed 或类似工具为文件中的每个数字加 1?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆