使用perl或awk搜索文件中的数字,并从命令行以常量增加它们

jon*_*rry 1 perl awk

我有一个三位数字的文件,我需要增加一定数量(实际上,我需要增加所有大于特定值的数字一定数量).如何从命令行尽可能简单地完成此操作?

编辑:澄清一下,文件中的文本多于数字,而且在awk中将它们作为字段提取并不容易.

mob*_*mob 7

下面是一个示例,它将获取大于400的文件中的每个数字(井,正整数)并向其添加13.

perl -pe 's/\d+/$& > 400 ? $&+13 : $&/ge' file
Run Code Online (Sandbox Code Playgroud)

\d+ 是正则表达式,它将匹配文本中的任何整数

$&是一个特殊的Perl变量,包含正则表达式匹配的文本.在这种情况下,它将是一个数字.

/e修饰符告诉Perl 评估替换表达式.在这种情况下,它会评估$& > 400 ? $&+13 : $&以获得不同的数字.

'/ g'修饰符替换每行上的正则表达式的所有实例(整数).