-t$'\t'
sort のマニュアルページでは、フィールド区切り文字を指定するために -t が使用されています。しかし、この形式が何を意味するのか分かりません。
答え1
Bash ANSI-C 引用符文字列をこのように囲むと$'string'
、C 文字列と同じ規則で展開されます。あなたの場合は$'t'
になります't'
が、そうであれば$'\t'
タブ文字になります。これは、 のように二重引用符を使用する場合とは少し異なります。二重引用符を使用すると、"string"
bash の置換 (たとえば、変数の展開) が可能になるためです。
答え2
-t オプションの後の '$' は、表現に 7 ビット以上を使用する文字を指定するために使用されます。たとえば、改行の場合は '\n'、タブの場合は '\t' です。次のようにします。
sort -t '\t'
Sort はおそらく、'\' と 't' を文字通り読み取ろうとするため、使用している文字が多すぎるというエラーを出力します。
したがって、あなたの例では、バックスラッシュは省略されています。
たとえば、 cut コマンドでも同様です。
cut -d$'\t'