1. ホーム
  2. linux

[解決済み】タブ区切りファイルの並べ替え

2022-04-18 02:22:23

質問

次のような形式のデータがあります。

foo<tab>1.00<space>1.33<space>2.00<tab>3

ここで、最後のフィールドを基準にして、ファイルを小さくソートしようとしました。 以下のコマンドを試してみましたが、思ったようにソートされませんでした。

$ sort -k3nr file.txt  # apparently this sort by space as delimiter

$ sort -t"\t" -k3nr file.txt
  sort: multi-character tab `\\t'

$ sort -t "`/bin/echo '\t'`" -k3,3nr file.txt
  sort: multi-character tab `\\t'

正しい方法とは?

以下は サンプルデータ .

解決方法は?

使用方法 バッシュ であれば、これで大丈夫です。

$ sort -t$'\t' -k3 -nr file.txt

シングルクォートの文字列の前にあるドル記号に注目してください。について読むことができます。 の中にある。 ANSI-C Quotingセクションの バッシュ マンページ .