![如果分隔符不存在,则切断谎言](https://linux22.com/image/1445781/%E5%A6%82%E6%9E%9C%E5%88%86%E9%9A%94%E7%AC%A6%E4%B8%8D%E5%AD%98%E5%9C%A8%EF%BC%8C%E5%88%99%E5%88%87%E6%96%AD%E8%B0%8E%E8%A8%80.png)
例如:
$ 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 选项