このソートコマンドはどういう意味ですか? cat temp.txt | sort -t$'\t'

このソートコマンドはどういう意味ですか? cat temp.txt | sort -t$'\t'

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

関連情報