![cut 命令中的 n 选项有什么用途?](https://linux22.com/image/158532/cut%20%E5%91%BD%E4%BB%A4%E4%B8%AD%E7%9A%84%20n%20%E9%80%89%E9%A1%B9%E6%9C%89%E4%BB%80%E4%B9%88%E7%94%A8%E9%80%94%EF%BC%9F.png)
我正在学习cut
命令。在 cut 的手册页中,他们显示了-n
如下选项:
-n (ignored)
但我不明白该选项的用法n
或何时使用它。谁能用例子解释一下吗?
答案1
您将 -n 选项描述为“忽略”,只是因为它在的实现man cut
中未实现。cut
coreutils
然而,-n 选项在其他一些实现上实现cut
,至少在 *BSD \ POSIX.2 实现中。
因此,cut
为了可移植性,为了不破坏与脚本的兼容性,coreutils 为其实现了一个存根选项。然而,由于它没有实现,所以使用它不会有任何效果。
从man cut
FreeBSD 12.0 开始:
-n 不分割多字节字符。仅当至少选择一个字节时才会输出字符,并且在零个或多个未选择字节的前缀之后,选择形成字符的其余字节。
来自POSIX 标准cut
页面,@Kusalananda 指出的链接:
-n 不分割字符。当使用 -b 选项指定时,低-高(-分隔的数字)形式的列表中的每个元素应修改如下:
如果low选择的字节不是字符的第一个字节,则low应递减以选择low最初选择的字符的第一个字节。如果high选择的字节不是字符的最后一个字节,则high应递减以选择high最初选择的字符之前的字符的最后一个字节,如果没有先前的字符则为零。如果结果范围元素的高位等于零或低位大于高位,则应从该输入行的列表中删除该列表元素,而不会导致错误。
low- 形式的列表中的每个元素应按上述方式处理,其中 high 设置为当前行中的字节数,不包括终止的 。形式 - high 的列表中的每个元素应按上述方式处理,其中 low 设置为 1。 num 形式的列表(单个数字)中的每个元素应按上述方式处理,其中 low 设置为 num,high 设置为 num。