给出了一个数字列表,我希望通过“ 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)
答案 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