这个 sort 命令是什么意思? cat temp.txt | sort -t$'\t'

这个 sort 命令是什么意思? cat temp.txt | sort -t$'\t'

在 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' 

相关内容