На странице руководства сортировки -t используется для указания разделителя полей. Однако я не знаю, что означает форма -t$'\t'
?
2 ответа
Bash ANSI-C цитирование. Если вы оберните строку как эта $'string'
, она будет расширена с теми же правилами, что и строка C. В вашем случае $'t'
становится просто 't'
, но если бы это был $'\t'
он стал бы символом табуляции. Это немного отличается от использования двойных кавычек, как в "string"
потому что двойные кавычки допускают подстановку bash (например, расширение переменной)
'$' После опции -t используется для указания символа, который использует более 7 бит для своего представления. Например, для новой строки: «\n», для вкладки «\t». Если вы делаете это так:
sort -t '\t'
Сортировка, вероятно, выведет вам сообщение об ошибке, говорящее о том, что вы используете слишком много символов, потому что она пытается буквально прочитать '\' и 't'.
Таким образом, в вашем примере обратный слеш опущен.
То же самое, например, с командой cut:
cut -d$'\t'