在某些shell命令选项中,在标志后加冒号的目的是什么?

时间:2019-05-03 15:36:05

标签: bash shell unix

请参阅此示例,该示例取自O'Reilly的书 Classic Shell Scripting

sort -t: -k1,1 /etc/passwd

为什么在:之后有t?似乎没有必要,也没有在man中进行记录,但是我一直在示例中看到它。

3 个答案:

答案 0 :(得分:2)

这只是-t选项的参数,用于指定输入文件中的字段由冒号分隔。

答案 1 :(得分:1)

man sort

  

-t,--field-separator = SEP 使用SEP而不是从空白到空白的过渡

它是-t ':'的简写,所以冒号是字段分隔符。

答案 2 :(得分:0)

  

为什么在t之后有a:?似乎并不需要它,也没有人为记载,但是我一直在示例中看到它。

它在手册中有绝对记载。这是sort的{​​{1}}选项的the POSIX documentation的关键部分:

  

-t 字符
      使用 char 作为字段分隔符; char 不应被视为字段的一部分(尽管可以将其包含在   排序键)。 [...]

-t:选项的参数。 t程序会将输入行拆分为该字符周围的字段,而不是空白。

您的手册页可能会以不同的方式显示它(例如,GNU sort手册一起记录了标准和(特定于GNU的)长选项),但是您显示的形式对所有POSIX都具有相同的含义-符合sort程序。