`sort` コマンドで `htop` が `$'\t' を `?` と表示するのはなぜですか?

`sort` コマンドで `htop` が `$'\t' を `?` と表示するのはなぜですか?

次のように、1つのセクションでパイプラインコマンドを実行しています。

sort -t $'\t'  -T . -k1,1g

モニタリングすると、htop次のように表示されます。

ここに画像の説明を入力してください。

その理由は何ですか?これは私のコマンドが間違っているか何かが間違っていることを意味しますかhtop

答え1

あなたの命令には何の問題もありませんhtop制御文字を疑問符に置き換える:

(((unsigned char)data_c[j]) >= 32 ? ((unsigned char)data_c[j]) : '?')

(32以下の値を持つ文字は制御文字です。)

答え2

htopプロセスマネージャは有効なソートオプションではなくタブ文字として解釈されるため、ソートコマンドが表示され$'\t'ます。?\t

ソートコマンドは、コマンドがソート\tされるフィールドを指定するための区切り文字として使用されます。ただし、htop では有効な区切り文字ではないため、ソート列に ? と表示されます。

-kオプションを使用してソートフィールドを指定し、-tオプションを使用して区切り文字を指定できます。たとえば、htop -u -p -k 2,2 -t ' 'スペースを区切り文字として使用して、2番目のフィールドに基づいてソートします。

関連情報