我有一个三位数字的文件,我需要增加一定数量(实际上,我需要增加所有大于特定值的数字一定数量).如何从命令行尽可能简单地完成此操作?
编辑:澄清一下,文件中的文本多于数字,而且在awk中将它们作为字段提取并不容易.
下面是一个示例,它将获取大于400的文件中的每个数字(井,正整数)并向其添加13.
perl -pe 's/\d+/$& > 400 ? $&+13 : $&/ge' file
Run Code Online (Sandbox Code Playgroud)
\d+ 是正则表达式,它将匹配文本中的任何整数
$&是一个特殊的Perl变量,包含正则表达式匹配的文本.在这种情况下,它将是一个数字.
该/e修饰符告诉Perl 评估替换表达式.在这种情况下,它会评估$& > 400 ? $&+13 : $&以获得不同的数字.
'/ g'修饰符替换每行上的正则表达式的所有实例(整数).