![替换 bash 中的特定行](https://linux22.com/image/1171572/%E6%9B%BF%E6%8D%A2%20bash%20%E4%B8%AD%E7%9A%84%E7%89%B9%E5%AE%9A%E8%A1%8C.png)
我想更改一个文件 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"