如何在“ sed”命令中输入数学表达式?

时间:2018-12-24 15:35:59

标签: linux bash shell

给出了一个数字列表,我希望通过“ sed”命令仅显示从2到变量的范围内的行,并减去1。如何在表达式内的变量中减去1?我不希望在命令之前创建另一个变量的解决方案。

echo -e "1\n2\n3\n4\n5\n6\n7\n" | sed -n "3,+$var p"

如果$ var = 3,则显示3-4-5-6。 但是,如果要打印最多5个(3-4-5),则必须从变量($ var-1)中减去1。

我想插入($ var-1)

1 个答案:

答案 0 :(得分:3)

您可以在shell中使用hibernate-core-deps.jar进行算术运算:

$((...))

echo -e "1\n2\n3\n4\n5\n6\n7\n" | sed -n "3,+$((var-1)) p"

我建议使用3 4 5 ,因为它更便于携带:

printf

printf '%s\n' {1..7} | sed -n "3,+$((var-1)) p" 中,您可以使用bash并避免使用管道:

here-string