各ファイルには、2つの情報(重量と高さ、次のように区切られた空白)を含む多くの.datファイル(変数)があります。ここで First_Last は名前です。
18kg 1.2m
「First1_Last1.dat」から
12kg 1.6m
「First2_Last2.dat」などから
各値の最初または2番目の値に基づいてソートする必要があります。すべてのファイルをマージし(不明)、cat
セルを削除してから、ファイル名を一時ファイルの3番目の列として追加して目的の出力を取得する必要があると思います。各ファイルを正しい順序で開くには、関連付けられた名前が必要なので、各値がどのファイルから出てくるのかを追跡してください。だから私が使用したい出力ファイルは次のようになりますcut
paste
sort -k 1,1 temp.txt
12 1.6 First2_Last2.dat
18 1.2 First1_Last1.dat
組み込みアイテムまたは欠落している.datファイル形式のプロパティを使用してこれを行うより良い方法があるかどうか疑問に思います。それともawk
?
ベストアンサー1
grep
とをsed
使用してソートキーを抽出し、ソートする特定の列のみを指定できます。
grep -H kg *.dat \
| sed 's/^\([^:]\+\):\([0-9.]\+\)kg \+\([0-9.]\+\)m.*$/\2 \3 \1/' \
| sort -t' ' -k1,2 -g
出力例:
12 1.6 First2_Last2.dat
18 1.2 First1_Last1.dat