如果分隔符不存在,则切断谎言

如果分隔符不存在,则切断谎言

例如:

$ cut -d ' ' -f 2- <<< "example"
example

为什么 cut 会骗我,告诉我“example”是第二个分隔符等等。我希望它打印出来,""因为没有第二个分隔符。

请注意,这做了正确的事情:

$ cut -d ' ' -f 2- <<< "example "

答案1

您需要使用以下-s选项:

$ cut -d ' ' -sf 2- <<< "example"
$

默认情况下,如果一行没有分隔符,cut则将打印整行。 -s关闭此行为。

您的第二个示例并没有分隔符:

cut -d ' ' -f 2- <<< "example "

因为该行有一个分隔符,cut所以可以实现您所期望的效果。

文档

此行为记录在man cut

-f, --fields=列表
仅选择这些字段;还打印不包含分隔符的任何行,除非指定了 -s 选项

相关内容