awk '{print $NF,$0}' file | sort | cut -f2- -d' '
基本的に、このコマンドは次のことを行います:
<オール>行内のフィールドの順序を逆にするための perl のワンライナー:
perl -lne 'print join " ", reverse split / /'
一度使用して、出力を並べ替えにパイプしてからパイプで戻すと、目的が達成されます。 / /
を変更できます / +/
まで そのため、スペースが圧迫されます。もちろん、行を分割する正規表現は自由に使用できます。
このようなもの
awk '{print $NF"|"$0}' file | sort -t"|" -k1 | awk -F"|" '{print $NF }'
Perl コマンド ラインを次に示します (シェルによっては、$
をエスケープする必要があることに注意してください)。 s):
perl -e "print sort {(split '/', $a)[-1] <=> (split '/', $b)[-1]} <>"
リストをパイプするか、リストがファイル内にある場合は、ファイル名をコマンドラインの最後に置きます。
このスクリプトは実際にはデータを変更しないため、使用する区切り文字について注意する必要はありません。
出力例は次のとおりです:
>perl -e "print sort {(split '/', $a)[-1] <=> (split '/', $b)[-1]} " files.txt /a/e/f/g/h/01-do-this-first /a/b/c/10-foo /a/b/c/20-bar /a/d/30-bob /a/b/c/50-baz /a/e/f/g/h/99-local