我有一个文本文件 a.txt,其内容是 0 到 100 之间的数字。我需要一个命令来修改 a.txt,将数字增加 10,但在最终结果必须小于 100(即如果数字达到一个大于 100 的值(例如 95+10=105),它就保持在 100 上)。
我还需要一个最多减少 10 的命令,但最终结果大于或等于 0,它应该是类似的。
我能做的是直接用 echo 修改文件,但这样我就可以用其他东西替换数字(而不是添加到以前的数字)。
这将增加 10:
echo "$(awk '{x=$0+10;if(x>100)x=100; print x}' a.txt)" > a.txt
Run Code Online (Sandbox Code Playgroud)
这将减去 10:
echo "$(awk '{x=$0-10;if(x<0)x=0; print x}' a.txt)" > a.txt
Run Code Online (Sandbox Code Playgroud)
$0
是在文件中读取的当前行的值,因此它加/减 10,然后检查它是否在约束范围内。
感谢 Wildcard 的精彩评论,您可以在不使用临时文件的情况下执行此操作。