我正在尝试使用head命令,在 macOS 中使用 zsh,代码如下,

a.txt:

1
2
3
4
5
6
7
8
9
10

tail -n +5 a.txt   // line 5 to line end

tail -n -5 a.txt   // last line 5 to line end

head -n +5 a.txt // line 1 to line 5

head -n -5 a.txt  // # What did this do?

最后一条命令显示错误。

head: illegal line count -- -5

head -n -5 实际上做了什么?

#1楼 票数:2 已采纳

一些像 GNU head这样的head支持-n否定参数

但这不是标准! 您的情况显然不受支持。

当支持时否定参数应该在做head之前删除最后5 lines

#2楼 票数:0

如果使用3而不是5 ,则变得更加清楚。 注意标志!

# print 10 lines:
seq 10

1
2
3
4
5
6
7
8
9
10

#-------------------------    
# get the last 3 lines:
seq 10 | tail -n 3

8
9
10

#--------------------------------------
# start at line 3 (skip first 2 lines)
seq 10 | tail -n +3

3
4
5
6
7
8
9
10

#-------------------------    
# get the first 3 lines:
seq 10 | head -n 3

1
2
3

#-------------------------    
# skip the last 3 lines:
seq 10 | head -n -3

1
2
3
4
5
6
7

顺便说一句, man tailman head解释了这种行为。

  ask by user956609 translate from so

未解决问题?本站智能推荐:

1回复

排除特定论点的规则组

我发现由于适用于JSESSIONID cookie的SQL注入规则,我的modsec_audit.log阻止了许多请求。 我正在尝试避免针对特定Cookie名称使用这些规则。 我最后的尝试是: SecRuleUpdateTargetByTag“ OWASP_CRS / WE
2回复

我可以在命令行上做一个否定的通配符吗? [复制]

这个问题在这里已经有了答案: 在 unix/linux shell 中进行模式匹配时,如何使用反向通配符或负通配符? (11 个回答)
1回复

全局否定如何工作?

我正在使用 gulp 并且不理解以下 glob 模式的方法: 它选择除 min 后缀的所有 css 文件。 如果它是正则表达式,它会编译成什么? 我明白为什么'./bower_components/**/*!(.min).css'表单不起作用,但我仍然不明白为什么不需要在.css之前放一个星号
2回复

Linux查找与修剪和否定[关闭]

我想grep除目录中的所有文件 lib子目录 图片( png和jpg ) 我在shell脚本中执行此操作,将参数传递给grep ,没问题。 此命令排除lib的子目录 而这不包括图像 放在一起 它无法排除图像。 知道发生了什么吗?
5回复

否定bash脚本中的条件

我是bash的新手,我一直试图否定以下命令: 如果我连接到互联网,这个if条件返回true。 我希望它发生反过来但是放! 任何地方似乎都不起作用。
2回复

NumberFormat解析方法返回否定结果!

我正在尝试将String值格式化为有效的货币双,如下所示 问题是我得到了一个负数,我得到了-10! 那么这段代码有什么问题吗? 谢谢
4回复

红宝石多线扫描之间; 否定?

我正在尝试匹配文本;- 。 我用了: 但它不起作用。 我的文字是: 我需要将文本分开;- 。 例如,这是结果数组的第一个元素: 这是第二个:
1回复

Bash数组中的否定下标

创建一个简单的bash堆栈脚本后,我遇到了与bash数组相关的错误。 从Bash手册: 如果使用语法分配任何变量,则会自动创建索引数组: name[subscript]=value name [subscript] = value下标被视为必须求值为数字的算术表达