我有一个文件“a.txt”,其内容如下:
K8A2-19C204-BA109691
ML_18.10.4-109691
我如何在文件中搜索字符串“ML_”,如果匹配,则使用 bash 脚本中的“sed”命令将该行的最后 3 位数字修改为一些随机数字。
我可以使用以下命令将最后 3 位数字更改为一些固定数字:
sed -i '/ML_/s/[0-9][0-9][0-9]$/012/' file_name
但不确定如何用随机数改变
答案1
如果你对随机性没有任何特殊要求,那么你可以使用RANDOM
评论中提到的内置 bash shell,例如
$ sed '/^ML_/ s/[0-9]\{3\}$/'$(printf '%03d' $((RANDOM%1000)))'/' a.txt
K8A2-19C204-BA109691
ML_18.10.4-109133
如果您需要“更好”的随机数,那么我建议放弃sed
并perl
寻找合适的随机数模块。