o que significa este comando de classificação? cat temp.txt | sort -t $ '\ t'

0

Na página man de ordenação, -t é usado para especificar um separador de campo. No entanto, não sei o que significa a forma -t$'\t' ?

    
por user3872279 01.09.2014 / 09:59

2 respostas

1

Bash ANSI-C citando . Se você quebrar uma string como essa $'string' , ela será expandida com as mesmas regras da string C. No seu caso, $'t' se torna apenas 't' , mas se fosse $'\t' , ele se tornaria um caractere de tabulação. Isso é um pouco diferente do que usar aspas duplas, como em "string" , porque as aspas duplas permitem a substituição de bash (por exemplo, expansão de variável)

    
por 01.09.2014 / 10:10
0

O '$' após a opção -t é usado para especificar um caractere que usa mais de 7 bits para sua representação. Por exemplo, para uma nova linha: '\ n', para uma guia '\ t'. Se você fizer assim:

sort -t '\t' 

A classificação provavelmente imprime um erro dizendo que você está usando muitos caracteres, porque tenta literalmente ler o '\' e o 't'.

Assim, no seu exemplo, a barra invertida é omitida.

É o mesmo, por exemplo, com o comando cut:

cut -d$'\t' 
    
por 01.09.2014 / 10:08

Tags