両方のディレクトリのパス名を含むファイルがあります。親ディレクトリに関係なく、ファイル名でソートしたいです。
テキストは次のとおりです。
/mnt/samsung/a/b/c
/mnt/samsung/d/e/f
...
/mnt/wd/a/b/c
/mnt/wd/d/e/f
次のようにソートしたいと思います。
/mnt/samsung/a/b/c
/mnt/wd/a/b/c
/mnt/samsung/d/e/f
/mnt/wd/d/e/f
私はこれをしようとしています:
sort -t / -k3
しかし、うまくいきません。
私も次のことを試しました。
sort -t "/" -k3
sort -t "/" -k2
sort -t / -k2
それらのどれも仕事がありません。
私が望むものは何が私に与えるでしょうか?
答え1
$ sort -t '/' -k 6 file
/mnt/samsung/a/b/c
/mnt/wd/a/b/c
/mnt/samsung/d/e/f
/mnt/wd/d/e/f
指定されたパスの場合、パスの末尾にあるファイル名は/
各行の6番目の区切りフィールドです(最初のフィールドの長さは0です)。
--debug
GNUで使用すると、sort
次のように出力されます。
$ sort --debug -t '/' -k 6 file
sort: text ordering performed using simple byte comparison
/mnt/samsung/a/b/c
_
__________________
/mnt/wd/a/b/c
_
_____________
/mnt/samsung/d/e/f
_
__________________
/mnt/wd/d/e/f
_
_____________
...最後のパスコンポーネントがソートキーとして使用されていることを示します。
また、関連性があるかもしれません(実際タスクは次のとおりです。