3

我可以用 grep/sed 增加 txt 文件中的一些数字吗?

我想找到文件中的所有数字并将它们增加 5。这可以使用 grep 和 sed 还是我需要为此编写应用程序?

编辑:文件有 n 行以数字开头 - 数字而不是一些文本。就像电影的标题。

示例行:

34 - 36 : Some text.
4

4 回答 4

2

您可以将 perl 用作:

perl -i -pe 's/(\d+)/$1+5/eg' filename

看见

于 2012-11-19T17:28:16.277 回答
1

应该是awk。将记录分隔符更改为空格(假设这是您想要做的),然后如果记录匹配正则表达式^[0-9]*$转换为数字加 5 并打印,否则打印。

这是一个非常完整的解决方案,但“留作练习”来编写代码。

于 2012-11-19T17:27:48.670 回答
1

我相信您应该使用awk 更改字段的内容

>cat 1.txt
34 - 36 : Some text.


cat 1.txt | awk '{ $1=$1+5; $3=$3+5; print $0; }'
39 - 41 : Some text.
于 2012-11-19T17:36:13.023 回答
0

这可能对您有用(GNU sed 和 Bash):

sed 's/[0-9]\+/$((&+5))/g;s/.*/echo "&"/e'  file
于 2012-11-20T00:19:32.490 回答