我将此命令与变量一起使用
sed '/${LN_NM}/d' file.txt
我正在用它来删除一行file.txt
。但是,当在没有变量的情况下使用此命令时,它可以正常工作。
答案1
/regular expression/d
将删除与该正则表达式匹配的行(因此,如果$LN_NUM
只是一个数字,如 5 或 18,则每行中都有该数字)。如果您想删除给定的行号:
sed "${LN_NM}d" file.txt
如果您想在删除该行后保存文件,请使用ed
,而不是sed
:
ed -s file.txt <<EOF
${LN_NM}d
w
EOF
答案2
正如 @plumo 已经提到的,使用'
(单引号)时变量不会被替换
使用"
双引号更改命令,这应该可以解决问题。
sed "/${LN_NM}d/" file.txt