文字列にスペースがある場合でも、文字列にtsortを使用できますか?

文字列にスペースがある場合でも、文字列にtsortを使用できますか?

coreutils マニュアルによると

tsortは、入力をスペースで区切られた文字列のペアとして読み取り、部分ソートを表します。

マニュアルによると、文字列にスペースが含まれている場合、その文字列とは異なる文字列にtsortを使用することはできません。文字列や他の文字列でtsortをどのように使用できますか?ありがとうございます。

ベストアンサー1

一部の入力文字列にスペースが含まれている場合、tsortは直接使用できません。

ソースコードを確認すると、区切り文字が次のようにハードコードされていることがわかります。スペース、タブ、改行そしてこれを変更するオプションもありません。

単語にスペースを含めることができるデータセットでtsortを使用する場合は、データセットを前処理し、スペースをスペース以外の文字(またはスペース以外の文字シーケンス)にエンコードしてから、tsortを実行して最後に公開することをお勧めします。最終出力プロセス、元の空白に戻ってデコードします。

sedこれは事前および後処理ステップで使用できます。スペースをエンコードするために使用する文字は、データセットによって異なります。他の無効な文字(たとえば、#または@$または\)がある場合は、その文字を直接使用できます。それ以外の場合は、2つの文字エンコーディング(スペースでエンコードなど\s)を考慮し、引用符文字自体をエンコードする方法(単一の\\バックスペースエンコーディング)を含めることができます。

おすすめ記事