在 sort 的 man 页面中,-t 用于指定字段分隔符。但是,我不知道这个-t$'\t'
格式是什么意思?
答案1
Bash ANSI-C 引用。如果您像这样包装字符串$'string'
,它将使用与 C 字符串相同的规则进行扩展。在您的情况下,它$'t'
只是't'
,但如果是,$'\t'
它将变成制表符。这与使用双引号略有不同,因为"string"
双引号允许 bash 替换(例如,变量扩展)
答案2
-t 选项后面的 '$' 用于指定使用超过 7 位来表示的字符。例如,换行符为 '\n',制表符为 '\t'。如果您这样做:
sort -t '\t'
排序可能会打印出一个错误,指出您使用了太多字符,因为它试图逐字读取“\”和“t”。
因此,在您的示例中,反斜杠被省略了。
例如,与 cut 命令相同:
cut -d$'\t'