首页 > 解决方案 > 在 SED 转义中替换变量 $

问题描述

我在文件中有 20 行我想在使用变量设置第 n 行第 n 行号之后删除所有行,例如 var1=5 然后使用 sed 删除第 5 到 20 行

试过了 sed ""$var1",$d" file -i

但它会产生以下错误

sed: -e expression #1, char 5: unexpected `,'```

标签: awksed

解决方案


我们能试试

var="3"
awk -v line="$var" '1; FNR==line{exit}' file > temp && mv temp file

细节:

在这里,我们创建了一个var带有 value的 shell 变量3,然后我们将该变量传递给 awk 程序,现在awk程序正在打印每一line行,直到行号为3然后程序退出。


推荐阅读