替换 bash 中的特定行

替换 bash 中的特定行

我想更改一个文件 test.txt 中的 800 行,如果我使用以下命令,它会起作用

sed -i '800s/old_pattern/new_pattern/' $filepath

有没有办法通过如下所示的变量传递行号

sed -i '"$linenum"s/old_pattern/new_pattern/' $filepath

我尝试了上述方法,但没有效果,请帮忙

答案1

$linenum如果它在单引号内则不会扩展 - 您只需将其移到外面即可:

sed -i "$linenum"'s/old_pattern/new_pattern/' "$filepath"

相关内容