我有一个名为“num”的变量,它包含一个数字。我想像“sed”一样使用它:
sed '1,$(num)d' file.txt
也尝试过:
sed '1,($num)d' file.txt
...这样我就可以删除1行到第num
行。
它给我一个这样的错误:
sed: -e expression #1, char 4: unknown command: `('
这样做的正确方法是什么?感谢。
答案 0 :(得分:3)
您的shell变量用法不正确。首先,使用双引号确保shell将扩展变量。其次,使用大括号围绕有问题的变量(num
)可确保shell将变量视为$num
,而不是随后的d
变亮。
您应该如何指定要执行的操作:
sed "1,${num}d" file.txt
答案 1 :(得分:0)
您可以使用单引号但需要连接脚本
num=42; seq 1 45 | sed '1,'$num'd'
将打印
43
44
45
正如所料。