【发布时间】:2018-12-25 00:19:02
【问题描述】:
给定一个数字列表,我想通过“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) 的方法
【问题讨论】:
-
要加强 anubhava 关于
echo -e不可移植的说法,请参阅pubs.opengroup.org/onlinepubs/9699919799/utilities/echo.html,尤其是选项、应用程序用法和基本原理部分。除了在输出上打印-e之外,标准不允许echo -e做任何事情。正如 APPLICATION USAGE 部分所述:除非-n(作为第一个参数)和转义序列都被省略,否则不可能在所有 POSIX 系统中可移植地使用echo