coreutils マニュアルによると
tsortは、入力をスペースで区切られた文字列のペアとして読み取り、部分ソートを表します。
マニュアルによると、文字列にスペースが含まれている場合、その文字列とは異なる文字列にtsortを使用することはできません。文字列や他の文字列でtsortをどのように使用できますか?ありがとうございます。
答え1
一部の入力文字列にスペースが含まれている場合、tsortは直接使用できません。
ソースコードを確認すると、区切り文字が次のようにハードコードされていることがわかります。スペース、タブ、改行そしてこれを変更するオプションもありません。
単語にスペースを含めることができるデータセットでtsortを使用する場合は、データセットを前処理し、スペースをスペース以外の文字(またはスペース以外の文字シーケンス)にエンコードしてから、tsortを実行して最後に公開することをお勧めします。最終出力プロセス、元の空白に戻ってデコードします。
sed
これは事前および後処理ステップで使用できます。スペースをエンコードするために使用する文字は、データセットによって異なります。他の無効な文字(たとえば、#
または@
、$
または\
)がある場合は、その文字を直接使用できます。それ以外の場合は、2つの文字エンコーディング(スペースでエンコードなど\s
)を考慮し、引用符文字自体をエンコードする方法(単一の\\
バックスペースエンコーディング)を含めることができます。