以下の表のtxtファイルがあります
3-6-13 0.0712 ./13-t.xyz
3-6-13 0.0717 ./2-t.xyz
3-6-13 0.3737 ./6-t.xyz
3-6-13 0.5862 ./5-t.xyz
3-6-13 0.7503 ./4-t.xyz
3番目の列に基づいて次のように並べ替えるにはどうすればよいですか。
3-6-13 0.0717 ./2-t.xyz
3-6-13 0.7503 ./4-t.xyz
3-6-13 0.5862 ./5-t.xyz
3-6-13 0.3737 ./6-t.xyz
3-6-13 0.0712 ./13-t.xyz
残念ながら、sortの-vオプションは使用できません。
sort -v -k 3 out.tmp
awk sedなどによる他の解決策はありますか?
シュワルツ変換を使用できます。数値を別のフィールドに抽出し、並べ替えてから削除します。
$ sed -r 's/(.*\/)([0-9]+)/\2 \1\2/' table.txt | sort -n -k1,1 | cut -d" " -f2-
3-6-13 0.0717 ./2-t.xyz
3-6-13 0.7503 ./4-t.xyz
3-6-13 0.5862 ./5-t.xyz
3-6-13 0.3737 ./6-t.xyz
3-6-13 0.0712 ./13-t.xyz
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加