Bash-如何替换文件中第m行的第n个字符串



我有一个包含许多随机种子的输入脚本。我想创建一个bash脚本,不断运行我的脚本,创建新的随机种子,运行脚本等等。我知道随机种子的位置,例如,这是第8行:

create_atoms 1 random 650 923456 t

现在,我想将923456替换为以前声明的变量。我想我应该用之类的东西

sed -i '8s/923456/$Var/' file

但我搞不清楚具体情况。

$ awk -v line=8 -v word=5 -v value="$Var" 'NR==line{$word=value}1' file

要用GNU sed替换第8行中的第5个单词,请使用

sed -E "8s/[^ ]+/$var/5"

对于定位使用

sed -E "8s/([^ ]+ +){4}([^ ]+)/1$var/"

注意,在这两种情况下,$var都必须没有特殊符号,如/&

最新更新