在执行“d”命令时如何在sed中使用shell变量?

时间:2017-06-08 09:59:32

标签: bash variables sed line

在我的bash中,我希望删除从1到$ {number}的行,如下所示:

number=10
sed '1,${number}d' myfile

语法错误失败。 我也试过“\ $ {number}”,“$ number”,neithers的作品

我改为双引号,它在命令行下工作,但不在bash脚本文件中。如何使它工作?

3 个答案:

答案 0 :(得分:2)

sed 表达式用双引号括起来插入变量number

sed "1,${number}d" file

答案 1 :(得分:2)

以这种方式运行sed时请使用双引号而不是单引号。 请阅读Difference between single and double quotes

答案 2 :(得分:1)

  

我改为双引号,它在命令行下工作,但不在内部   bash脚本文件

假设你的bash脚本是:

sed "1,${number}d" myfile

你应该在bash提示符中导出number变量,以便在运行时可以在bash脚本中看到它:

export number=10